首页 / PHP / 关于函数flock()的锁定问题!!!
关于函数flock()的锁定问题!!!
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了关于函数flock()的锁定问题!!!,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1680字,纯文字阅读大概需要3分钟。
内容图文
a.php$file3=fopen('a.txt','r+');
if(flock($file3,LOCK_EX+LOCK_NB)) {
fwrite($file3,$_GET['s']) ;
sleep(5);
flock($file3,LOCK_UN);
} else{
echo "文件锁定,不可写入内容!";
}
b.php
$file2=fopen('a.txt','r+');
fwrite($file2,$_GET['s']) ;
echo fread($file2,filesize('a.txt'));
fclose($file2);
先执行a.php时利用5秒间隔执行b.php
按理说由于a.php已经锁定,所以b.php,
无法写入,老师的视屏也是如此进行的
但是,我却不能和老师的一样运行,
结果依然是b.php写入的内容,a.php,并没有
锁定成功。
在下发现一个问题:就是我不能像视频里的老师一样利用间隔执行另一个脚本;
实际情况是:执行a.php完全结束后,才会在执行b.php。(前提是先刷新a.php,再刷新b.php)
我不清楚为什么会这样,请大家指教!
回复内容:
a.php
$file3=fopen('a.txt','r+');
if(flock($file3,LOCK_EX+LOCK_NB)) {
fwrite($file3,$_GET['s']) ;
sleep(5);
flock($file3,LOCK_UN);
} else{
echo "文件锁定,不可写入内容!";
}
b.php
$file2=fopen('a.txt','r+');
fwrite($file2,$_GET['s']) ;
echo fread($file2,filesize('a.txt'));
fclose($file2);
先执行a.php时利用5秒间隔执行b.php
按理说由于a.php已经锁定,所以b.php,
无法写入,老师的视屏也是如此进行的
但是,我却不能和老师的一样运行,
结果依然是b.php写入的内容,a.php,并没有
锁定成功。
在下发现一个问题:就是我不能像视频里的老师一样利用间隔执行另一个脚本;
实际情况是:执行a.php完全结束后,才会在执行b.php。(前提是先刷新a.php,再刷新b.php)
我不清楚为什么会这样,请大家指教!
PHP supports a portable way of locking complete files in an advisory
way (which means all accessing programs have to use the same way of
locking or it will not work). By default, this function will block
until the requested lock is acquired; this may be controlled with the
LOCK_NB option documented below.
advisory lock - 你需要在 a.php 和 b.php 都调用flock()
内容总结
以上是互联网集市为您收集整理的关于函数flock()的锁定问题!!!全部内容,希望文章能够帮你解决关于函数flock()的锁定问题!!!所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。