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 相关文章推荐
提升PHP执行速度全攻略(下)
Oct 09 PHP
探讨PHP删除文件夹的三种方法
Jun 09 PHP
smarty模板引擎之分配数据类型
Mar 30 PHP
php使用ZipArchive函数实现文件的压缩与解压缩
Oct 27 PHP
php根据用户语言跳转相应网页
Nov 04 PHP
PHP中ltrim与rtrim去除左右空格及特殊字符实例
Jan 07 PHP
PHP简单处理表单输入的特殊字符的方法
Feb 03 PHP
项目中应用Redis+Php的场景
May 22 PHP
PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】
Jun 21 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
Nov 17 PHP
PHP getDocNamespaces()函数讲解
Feb 03 PHP
thinkphp5框架扩展redis类方法示例
May 06 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
PHP的变量总结 新手推荐
2011/04/18 PHP
PHP编写RESTful接口
2016/02/23 PHP
ThinkPHP 5.1 跨域配置方法
2019/10/11 PHP
JS 分号引起的一段调试问题
2009/06/18 Javascript
javascript基础第一章 JavaScript与用户端
2010/07/22 Javascript
JS基础之undefined与null的区别分析
2011/08/08 Javascript
中文路径导致unitpngfix.js不正常的解决方法
2013/06/26 Javascript
jquery对象和DOM对象的区别介绍
2013/08/09 Javascript
javascript创建createXmlHttpRequest对象示例代码
2014/02/10 Javascript
JavaScript中判断整字类型最简洁的实现方法
2014/11/08 Javascript
用Move.js配合创建CSS3动画的入门指引
2015/07/22 Javascript
vue.js之vue-cli脚手架的搭建详解
2017/05/05 Javascript
js获取地址栏参数的两种方法
2017/06/27 Javascript
详解EasyUi控件中的Datagrid
2017/08/23 Javascript
详解vue mixins和extends的巧妙用法
2017/12/20 Javascript
babel的使用及安装配置教程
2018/02/22 Javascript
JavaScript canvas绘制折线图
2020/02/18 Javascript
javascript设计模式 ? 观察者模式原理与用法实例分析
2020/04/22 Javascript
[04:39]显微镜下的DOTA2第十三期—Pis卡尔个人秀
2014/04/04 DOTA
[02:13] 完美世界DOTA2联赛PWL DAY5集锦
2020/11/03 DOTA
python实现代码行数统计示例分享
2014/02/10 Python
Python Pandas数据中对时间的操作
2019/07/30 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
2019/08/17 Python
Python Celery多队列配置代码实例
2019/11/22 Python
DataFrame 数据合并实现(merge,join,concat)
2020/06/14 Python
利用Python优雅的登录校园网
2020/10/21 Python
聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明
2021/03/03 Python
CSS3弹性布局内容对齐(justify-content)属性使用详解
2017/07/31 HTML / CSS
医学院四年学习生活的自我评价
2013/11/06 职场文书
办理退休介绍信
2014/01/09 职场文书
中医临床专业自我鉴定范文
2014/01/15 职场文书
领班岗位职责范文
2014/02/06 职场文书
2015医德医风个人工作总结
2015/04/02 职场文书
2015年车间安全管理工作总结
2015/05/13 职场文书
关于远足的感想
2015/08/10 职场文书
Java org.w3c.dom.Document 类方法引用报错
2021/08/07 Java/Android