登录  /  注册

PHP中关于flock的有关问题

php中文网
发布: 2016-06-13 13:48:55
原创
915人浏览过

PHP中关于flock的问题
关于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的客户端大量浏览发生内容更新的缓存文件,岂不是都会阻塞?



------解决方案--------------------
你可以这样验证,再创建一个文件,包含上述代码

试着用标签式浏览器分别打开这两个文件,,,,看看是否达到你的需求。。如果是,就是上述原因

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号