我有以下代码,但是信号量没有像预期的那样锁定它。
(我知道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次点击量。
服务器环境为:nginx on ubuntu 12.04(64位),php 5.3.16~dotdeb,php-fpm。
- 更新1:在Linux mint上完美运行,版本为5.4.6~dotdeb,内置web服务器。我将尝试在同一台机器上使用相同的版本与nginx进行测试。
apc_inc
调用放在锁定的块内,它被执行了4000次。 - Alex