关于flock的问题,我在博客上整体了下,http://www.shionco.com/archives/php_flock.html例程代码: $fd = fopen('./a.html', 'wb');
if ($fd) {
if (@flock($fd, LOCK_EX|LOCK_NB)) {
echo '未锁,打开文件并加锁';
sleep(10);
} else {
print '已锁,关闭文件';
}
fclose($fd);
} else {
echo '打开文件失败';
} 我在FF下,建立2个页面,打开第一个页面运行,独占锁定成功,进入延时状态,马上打开第2个页面运行,结果第2页发生阻塞,等到第1页运行结束,第2页也独占锁定成功,进入延时状态,执行完毕,明明使用了LOCK_NB,但并未发生独占锁定失败。无论是新建标签页或新窗口都会发生阻塞!然而在IE下(我使用的是IE9,别的未测试),同样的流程,第2页直接独占锁定失败,输出"已锁,关闭文件";如果是这样,FF的客户端大量浏览发生内容更新的缓存文件,岂不是都会阻塞?
if ($fd) {
if (@flock($fd, LOCK_EX|LOCK_NB)) {
echo '未锁,打开文件并加锁';
sleep(10);
} else {
print '已锁,关闭文件';
}
fclose($fd);
} else {
echo '打开文件失败';
} 我在FF下,建立2个页面,打开第一个页面运行,独占锁定成功,进入延时状态,马上打开第2个页面运行,结果第2页发生阻塞,等到第1页运行结束,第2页也独占锁定成功,进入延时状态,执行完毕,明明使用了LOCK_NB,但并未发生独占锁定失败。无论是新建标签页或新窗口都会发生阻塞!然而在IE下(我使用的是IE9,别的未测试),同样的流程,第2页直接独占锁定失败,输出"已锁,关闭文件";如果是这样,FF的客户端大量浏览发生内容更新的缓存文件,岂不是都会阻塞?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货