php – LOCK_SH如何工作?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – LOCK_SH如何工作?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在研究 PHP中的群体机制,我很难理解LOCK_SH模式的功能.我在一个网站上读到它锁定文件,以便其他脚本不能写入其中,但是他们可以从中读取.但是,以下代码似乎没有按预期工作:在file1.PHP我有
$fp = foPEn('my_file.txt','r');

flock($fp,LOCK_SH);
sleep(20);
flock($fp,LOCK_UN);

在file2.PHP我有

$fp = fopen('my_file.txt','a');
fwrITe($fp,'test');

我运行第一个锁定文件20秒的脚本.锁定到位后,我运行file2.PHP,它立即完成它的执行,之后,当我打开’my_file.txt’时,字符串’test’被附加到它上面(虽然’file1.PHP’仍在运行).我尝试更改’file2.PHP’,以便它可以从锁定的文件中读取它并且没有任何问题.所以
显然……’LOCK_SH’接缝无所事事.但是,如果我使用LOCK_EX是,它会锁定文件,没有脚本可以写入或读取文件.我正在使用Easy PHP并在Windows 7下运行它.

flock()实现了建议锁定,而不是强制锁定.为了使file2.PHP被file1.PHP的锁阻塞,它需要在写入之前尝试获取文件上的写(LOCK_EX)锁.

脚本宝典总结

以上是脚本宝典为你收集整理的php – LOCK_SH如何工作?全部内容,希望文章能够帮你解决php – LOCK_SH如何工作?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。