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
ecshop 批量上传(加入自定义属性)
Mar 20 PHP
PHP+memcache实现消息队列案例分享
May 21 PHP
destoon之一键登录设置
Jun 21 PHP
php导出CSV抽象类实例
Sep 24 PHP
PHP统计当前在线用户数实例讲解
Oct 21 PHP
Laravel 5.3 学习笔记之 错误&amp;日志
Aug 28 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
Jul 19 PHP
利用Homestead快速运行一个Laravel项目的方法详解
Nov 14 PHP
php正确输出json数据的实例讲解
Aug 21 PHP
php日志函数error_log用法实例分析
Sep 23 PHP
Laravel框架源码解析之反射的使用详解
May 14 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数组中包含中文的排序方法
2014/06/03 PHP
php基于CodeIgniter实现图片上传、剪切功能
2016/05/14 PHP
Smarty日期时间操作方法示例
2016/11/15 PHP
yii使用bootstrap分页样式的实例
2017/01/17 PHP
php弹出提示框的是实例写法
2019/09/26 PHP
PHP实现页面静态化深入讲解
2021/03/04 PHP
js类中获取外部函数名的方法与代码
2007/09/12 Javascript
js判断选择时间不能小于当前时间的示例代码
2013/09/24 Javascript
判断浏览器的内核及版本号方法汇总
2015/01/05 Javascript
Javascript基础教程之数据类型 (字符串 String)
2015/01/18 Javascript
扒一扒JavaScript 预解释
2015/01/28 Javascript
JS实现鼠标箭头变成一个燃烧烛光效果的方法
2015/02/28 Javascript
浅谈JavaScript中的string拥有方法的原因
2015/08/28 Javascript
jQuery实现 上升、下降、删除、添加一行代码
2017/03/06 Javascript
d3.js入门教程之数据绑定详解
2017/04/28 Javascript
bootstrap datetimepicker控件位置异常的解决方法
2017/11/23 Javascript
vue实现学生录入系统之添加删除功能
2018/07/11 Javascript
webpack4简单入门实例
2018/09/06 Javascript
在vue-cli3.0 中使用预处理器 (Sass/Less/Stylus) 配置全局变量操作
2020/08/10 Javascript
node.js如何操作MySQL数据库
2020/10/29 Javascript
[01:06:26]全国守擂赛第二周 Team Coach vs DeMonsTer
2020/04/28 DOTA
Python实现的几个常用排序算法实例
2014/06/16 Python
Python合并字符串的3种方法
2015/05/21 Python
Python基于pygame实现的弹力球效果(附源码)
2015/11/11 Python
python+Splinter实现12306抢票功能
2018/09/25 Python
Python3几个常见问题的处理方法
2019/02/26 Python
python模拟点击网页按钮实现方法
2020/02/25 Python
python图片指定区域替换img.paste函数的使用
2020/04/09 Python
Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法
2020/07/21 Python
Dockers鞋官网:Dockers Shoes
2018/11/13 全球购物
小学生防溺水广播稿
2014/01/12 职场文书
先进党员事迹材料
2014/12/24 职场文书
2015年安全生产管理工作总结
2015/05/25 职场文书
教师培训简讯
2015/07/20 职场文书
诚信考试主题班会
2015/08/17 职场文书
Python+uiautomator2实现自动刷抖音视频功能
2021/04/29 Python