我想在php上使用信號量但是不能得到 sem_get()函數才能工作。這是我的PHP代碼:PHP sem_get()不起作用
<?php
$key = 123567;
$maxAcquire = 1;
$permissions = 0666;
$autoRelease = 1;
//it gives the error on the line below
$semaphore = sem_get($key, $maxAcquire, $permissions, $autoRelease);
sem_acquire($semaphore);
echo "hello world!";
sem_release($semaphore);
?>
當我嘗試與運行:
php semaphore.php
它打印此錯誤:
PHP Fatal error: Uncaught Error: Call to undefined function sem_get()
in /root/semaphore.php:8
Stack trace:
#0 {main}
thrown in /root/semaphore.php on line 8
我在Arch Linux的正與PHP 7.0.3(cli)。我想解決方案非常簡單,但我找不到解決的辦法。如果你能幫助我,我將不勝感激。謝謝。
我記得對於一些發行版(例如Gentoo),必須打開一個編譯標誌才能使它工作 - php通常不會與多線程支持afaik打包在一起。 – SmokeDispenser
信號量不是默認模塊。見[this](http://php.net/manual/en/sem.installation.php)。 –