php – LOCK_SH如何工作?
发布时间:2020-12-13 18:22:37 所属栏目:PHP教程 来源:网络整理
导读:我正在研究 PHP中的群体机制,我很难理解LOCK_SH模式的功能.我在一个网站上读到它锁定文件,以便其他脚本不能写入其中,但是他们可以从中读取.但是,以下代码似乎没有按预期工作:在file1.php我有: $fp = fopen('my_file.txt','r');flock($fp,LOCK_SH);sleep(20
我正在研究
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’,以便它可以从锁定的文件中读取它并且没有任何问题.所以
flock()实现了建议锁定,而不是强制锁定.为了使file2.php被file1.php的锁阻塞,它需要在写入之前尝试获取文件上的写(LOCK_EX)锁.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |