php使用flock阻塞写入文件和非阻塞写入文件的实例讲解


Posted in PHP onJuly 10, 2017

阻塞写入代码:(所有程序会等待上次程序执行结束才会执行,30秒会超时)

<?php 
$file = fopen("test.txt","w+"); 
 
$t1 = microtime(TRUE); 
if (flock($file,LOCK_EX)) 
{ 
 sleep(10); 
 fwrite($file,"Write something"); 
 flock($file,LOCK_UN); 
 echo "Ok locking file!"; 
} 
else 
{ 
 echo "Error locking file!"; 
} 
 
fclose($file); 
 
$t2 = microtime(TRUE); 
echo sprintf("%.6f",($t2-$t1));

非阻塞写入代码:(只要文件被占用,则显示Error locking file!)

<?php 
$file = fopen("test.txt","a+"); 
 
$t1 = microtime(TRUE); 
if (flock($file,LOCK_EX|LOCK_NB)) 
{ 
 sleep(10); 
 fwrite($file,"Write something"); 
 flock($file,LOCK_UN); 
 echo "Ok locking file!"; 
} 
else 
{ 
 echo "Error locking file!"; 
} 
 
fclose($file); 
 
$t2 = microtime(TRUE); 
echo sprintf("%.6f",($t2-$t1));

以上这篇php使用flock阻塞写入文件和非阻塞写入文件的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
相对路径转化成绝对路径
Apr 10 PHP
一段php加密解密的代码
Jul 16 PHP
功能齐全的PHP发送邮件类代码附详细说明
Jul 10 PHP
Zend Guard一些常见问题解答
Sep 11 PHP
PHP的SQL注入过程分析
Jan 06 PHP
检查用户名是否已在mysql中存在的php写法
Jan 20 PHP
PHP获取指定时间段之间的 年,月,天,时,分,秒
Jun 05 PHP
php无法连接mysql数据库的正确解决方法
Jul 01 PHP
如何通过View::first使用Laravel Blade的动态模板详解
Sep 21 PHP
Yii2结合Workerman的websocket示例详解
Sep 10 PHP
thinkphp5框架实现的自定义扩展类操作示例
May 16 PHP
PHP实现时间日期友好显示实现代码
Sep 08 PHP
form自动提交实例讲解
Jul 10 #PHP
利用php的ob缓存机制实现页面静态化方法
Jul 09 #PHP
解决安装WampServer时提示缺少msvcr110.dll文件的问题
Jul 09 #PHP
详解php中serialize()和unserialize()函数
Jul 08 #PHP
PC端微信扫码支付成功之后自动跳转php版代码
Jul 07 #PHP
Thinkphp5结合layer弹窗定制操作结果页面
Jul 07 #PHP
php实现保存周期为1天的购物车类
Jul 07 #PHP
You might like
提高define性能的php扩展hidef的安装和使用
2011/06/14 PHP
Thinkphp模板中使用自定义函数的方法
2012/09/23 PHP
PHP函数strip_tags的一个bug浅析
2014/05/22 PHP
将二维数组转为一维数组的2种方法
2014/05/26 PHP
PHP数组实例详解
2016/06/26 PHP
php传值方式和ajax的验证功能
2017/03/27 PHP
firefox下jquery ajax返回object XMLDocument处理方法
2014/01/26 Javascript
jquery删除ID为sNews的tr元素的内容
2014/04/10 Javascript
bootstrap表格内容过长时用省略号表示的解决方法
2017/11/21 Javascript
微信小程序ajax实现请求服务器数据及模版遍历数据功能示例
2017/12/15 Javascript
layer.confirm取消按钮绑定事件的方法
2018/08/17 Javascript
IE9 elementUI文件上传的问题解决
2018/10/17 Javascript
小程序api实现promise封装过程解析
2019/11/21 Javascript
Vue中nprogress页面加载进度条的方法实现
2020/11/13 Javascript
[02:56]DOTA2矮人直升机 英雄基础教程
2013/11/26 DOTA
Python多线程编程(三):threading.Thread类的重要函数和方法
2015/04/05 Python
Python3中常用的处理时间和实现定时任务的方法的介绍
2015/04/07 Python
Python装饰器使用实例:验证参数合法性
2015/06/24 Python
Python 提取dict转换为xml/json/table并输出的实现代码
2016/08/28 Python
python字典改变value值方法总结
2019/06/21 Python
Pandas之read_csv()读取文件跳过报错行的解决
2020/04/21 Python
HTML5仿微信聊天界面、微信朋友圈实例代码
2018/01/29 HTML / CSS
AJAX的优缺点都有什么
2015/08/18 面试题
如何唤起类中的一个方法
2013/11/29 面试题
夜大毕业生自我鉴定
2013/10/31 职场文书
教育课题研究自我鉴定范文
2013/12/28 职场文书
司机检讨书
2014/02/13 职场文书
大学生演讲稿
2014/04/25 职场文书
优秀语文教师事迹
2014/05/18 职场文书
电子商务系毕业生自荐信
2014/05/29 职场文书
会计专业自荐书
2014/07/08 职场文书
医学检验专业自荐信
2014/09/18 职场文书
长江三峡导游词
2015/01/31 职场文书
大学生入党群众意见书
2015/06/02 职场文书
Windows Server 2019 安装DHCP服务及相关配置
2022/04/28 Servers
Go gorilla securecookie库的安装使用详解
2022/08/14 Golang