我有以下代码,信号量不会按预期锁定它。
(我知道 apc_inc。这不是我要找的。)
$semkey = sem_get(123);
sem_acquire($semkey);
$count = apc_fetch('count111');
if(!$count) $count = 0;
$count++;
apc_store('count111', $count);
sem_release($semkey);
其次是
ab -n 4000 -c 200 http://localhost/test.php
0 个请求失败。
但之后 apc_fetch('count111')
仅显示约 1200 次命中
ubuntu 12.04(64 位)上的 nginx,php 5.3.16~dotdeb,php-fpm
- 更新 1:在内置网络服务器的 Linux mint 5.4.6~dotdeb 上完美运行。我打算在同一台机器上用相同版本的 nginx 试试。
最佳答案
问题显然出在 APC 本身,而不是信号量。
更新到 PHP 5.4.8-1~dotdeb.0 解决了 nginx 和内置服务器测试运行的问题。
关于php信号量不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12407767/