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

阻塞写入代码:(所有程序会等待上次程序执行结束才会执行,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));

代码学堂php

非阻塞写入代码:(只要文件被占用,则显示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));

最新文章

  1. 封装一个函数获取匹配特定的css选择符
  2. delphi 动态更改屏幕分辨率(转)
  3. &lt;转&gt;简单之美——系统设计黄金法则
  4. Android studio disign 问题
  5. Java中堆、栈、常量池分析
  6. 激活OFFICE2010时,提示choice.exe不是有效的win32程序
  7. CentOS7.2下Nginx的使用
  8. 【一天一道LeetCode】#18. 4Sum
  9. ffmpeg错误:Invalid UE golomb code
  10. jquery评分插件jquery.raty.js
  11. jqgrid点击搜索无法重置参数问题
  12. 使用ycsb对hbase0.94.11 benchmark
  13. pacman 命令
  14. Android手势密码--设置和校验
  15. vs2015未能计算子级
  16. Java课堂测试01及感想
  17. 洛谷P1414 又是毕业季II
  18. mysql 注入基础知识
  19. 20172324《Java程序设计》第二周学习总结
  20. Jenkins远程调度Shell命令

热门文章

  1. 为什么各大厂商要抢先跟进H.265?
  2. 防火墙上开放Oracle服务端口1521的方法
  3. CSS3用法理解
  4. 如何创建一个一流的SDK?
  5. C++抽象编程&#183;运算符重载与友元函数
  6. 多线程异步编程示例和实践-Task
  7. android 模拟器对应键盘快捷键
  8. JavaScript中对事件简单的理解(2)
  9. Context源码分析
  10. 基于Petri网的工作流分析和移植