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系列学习之日期函数使用介绍
Aug 18 PHP
Zend的AutoLoad机制介绍
Sep 27 PHP
获取PHP警告错误信息的解决方法
Jun 03 PHP
PHP+Mysql+Ajax+JS实现省市区三级联动
May 23 PHP
Codeigniter实现发送带附件的邮件
Mar 19 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
Jan 08 PHP
Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
Mar 21 PHP
什么是OneThink oneThink后台添加插件步骤
Apr 13 PHP
详解PHP字符串替换str_replace()函数四种用法
Oct 13 PHP
Laravel框架路由和控制器的绑定操作方法
Jun 12 PHP
PHP利用Mysql锁解决高并发的方法
Sep 04 PHP
PHP对接阿里云虚拟号的实现(号码隐私保护)
Apr 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
smarty模板引擎之内建函数用法
2015/03/30 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
Nigma vs AM BO3 第一场2.13
2021/03/10 DOTA
IE6图片加载的一个BUG解决方法
2010/07/13 Javascript
javascript制作2048游戏
2015/03/30 Javascript
jQuery遮罩层效果实例分析
2016/01/14 Javascript
学习JavaScript设计模式之观察者模式
2020/04/22 Javascript
javascript求日期差的方法
2016/03/02 Javascript
通过Ajax使用FormData对象无刷新上传文件方法
2016/12/08 Javascript
javascript 网页进度条简单实例
2017/02/22 Javascript
js实现图片加载淡入淡出效果
2017/04/07 Javascript
vue的无缝滚动组件vue-seamless-scroll实例
2017/12/18 Javascript
Angular实现点击按钮控制隐藏和显示功能示例
2017/12/29 Javascript
vue.js 嵌套循环、if判断、动态删除的实例
2018/03/07 Javascript
webpack4.0+vue2.0利用批处理生成前端单页或多页应用的方法
2019/06/28 Javascript
cordova+vue+webapp使用html5获取地理位置的方法
2019/07/06 Javascript
Layui实现数据表格默认全部显示(不要分页)
2019/10/26 Javascript
微信小程序图片右边加两行文字的代码
2020/04/23 Javascript
[03:09]DOTA2亚洲邀请赛 LGD战队出场宣传片
2015/02/07 DOTA
Python内置模块hashlib、hmac与uuid用法分析
2018/02/12 Python
python matlibplot绘制多条曲线图
2021/02/19 Python
python在html中插入简单的代码并加上时间戳的方法
2018/10/16 Python
python 并发编程 阻塞IO模型原理解析
2019/08/20 Python
python读文件的步骤
2019/10/08 Python
使用Tensorboard工具查看Loss损失率
2020/02/15 Python
python的reverse函数翻转结果为None的问题
2020/05/11 Python
大一新生军训时的自我评价分享
2013/12/05 职场文书
房地产还款计划书
2014/01/10 职场文书
家长对老师的评语
2014/04/18 职场文书
师恩难忘教学反思
2014/04/27 职场文书
英文版辞职信
2015/02/28 职场文书
2019年大学生职业生涯规划书
2019/03/25 职场文书
Python网络编程之ZeroMQ知识总结
2021/04/25 Python
【DOTA2】总决赛血虐~ XTREME GAMING vs MAGMA - OGA DOTA PIT 2022 CN
2022/04/02 DOTA
mybatis 获取更新记录的id
2022/05/20 Java/Android