1、阻塞模式(如果其它进程已经加锁文件,当前进程会等其它进程解锁后继续执行)

$handle = fopen(‘lock.txt‘, ‘r‘);

//锁定

if(flock($handle,LOCK_EX)){

//to do something

//解锁

flock($handle, LOCK_UN);

}

//关闭文件

fclose($handle);

?>

2、非阻塞模式(如果其它进程已经加锁文件,当前进程会执行else里面的内容,不会等待文件解锁)

$handle = fopen(‘lock.txt‘, ‘r‘);

if(flock($handle, LOCK_EX | LOCK_NB)){

//do something

}else{

// 提示系统繁忙

}

flock($handle, LOCK_UN);

fcolse($handle);

?>

注:windows不支持LOCK_NB类型锁定文件,所以,非阻塞模式不能在windows下做验证(笔者就遇到这个坑,一直不能执行else里面的内容,Linux系统可以执行)

应用场景:当执行一个脚本而阻塞其它脚本时,如:订单状态更改处理

原文:https://www.cnblogs.com/wheats/p/11915510.html

php文件锁 阻塞区别,php文件锁阻塞模式和非阻塞模式相关推荐

  1. [转]Socket的阻塞模式和非阻塞模式

    http://blog.csdn.net/VCSockets/ 阻塞模式 Windows套接字在阻塞和非阻塞两种模式下执行I/O操作.在阻塞模式下,在I/O操作完成前,执行的操作函数一直等候而不会立即 ...

  2. socket的阻塞模式和非阻塞模式(send和recv函数在阻塞和非阻塞模式下的表现)

    socket的阻塞模式和非阻塞模式 无论是Windows还是Linux,默认创建socket都是阻塞模式的 在Linux中,可以再创建socket是直接将它设置为非阻塞模式 int socket (i ...

  3. 【gev】 Golang 实现轻量、快速的基于 Reactor 模式的非阻塞 TCP 网络库

    gev 轻量.快速的 Golang 网络库 https://github.com/Allenxuxu/gev gev 是一个轻量.快速的基于 Reactor 模式的非阻塞 TCP 网络库,底层并不使用 ...

  4. golang mysql 非阻塞_Golang 实现轻量、快速的基于 Reactor 模式的非阻塞 TCP 网络库...

    gev 轻量.快速的 Golang 网络库 gev 是一个轻量.快速的基于 Reactor 模式的非阻塞 TCP 网络库,底层并不使用 golang net 库,而是使用 epoll 和 kqueue ...

  5. socket的阻塞模式和非阻塞模式

    文章目录 socket的阻塞模式和非阻塞模式 如何将socket设置为非阻塞模式 send和recv函数在阻塞和非阻塞模式下的表现 非阻塞模式下send和recv函数的返回值总结 阻塞与非阻塞sock ...

  6. c# 非阻塞算法_C#阻塞模式和非阻塞模式

    阻塞模式 Windows套接字在阻塞和非阻塞两种模式下执行I/O操作.在阻塞模式下,在I/O操作完成前,执行的操作函数一直等候而不会立即返回,该函数所在的线程会阻塞在这里.相反,在非阻塞模式下,套接字 ...

  7. 网络嗅探混杂模式与非混杂模式的区别

    1.混杂模式与非混杂模式的区别: 这两种方式区别很大.一般来说,非混杂模式的嗅探器中,主机仅嗅探那些跟它直接有关的通信,如发向它的,从它发出的,或经它路由的等都会被嗅探器捕捉.而在混杂模式中则嗅探传输 ...

  8. linux c fifo阻塞写和非阻塞写,linux—FIFO的使用与非阻塞标志(O_NONBLOCK)的影响

    FIFO文 #include #include int mkfifo( const char*pathname, mode_t mode); 参数: pathname:FIFO的路径名+文件名. mo ...

  9. hive严格模式和非严格模式的区别

    hive严格模式和非严格模式的区别 hive严格模式 hive提供了一个严格模式,可以防止用户执行那些可能产生意想不到的不好的效果的查询.即某些查询在严格 模式下无法执行. 1)带有分区的表的查询 如 ...

  10. 你可能不知道系列--JavaScript严格模式与非严格模式的区别

    对于 JavaScript 严格模式与非严格模式的区别,强烈建议大家去查看权威文档 MDN: 严格模式,不要乱找百度,本文也主要是参考了 MDN 上对 JS 严格模式 的介绍. 首先,严格模式通过抛出 ...

最新文章

  1. DataWorks V2使用PyUdf
  2. 一周焦点 | Dota2团战击溃AI;不如跳舞!伯克利最新人体动作迁移研究
  3. Springboot+Mybatis+Durid
  4. Linux_SystemLogManager
  5. 新建站点如何与服务器,新建站点如何收录更快
  6. Linux思维导图整理,你确定不收藏?
  7. 学习Matlab强大的符号计算(解方程)
  8. chrome 占用大量内存直到网页崩溃_Chrome吃内存太夸张!几招解决Chrome占内存硬伤...
  9. repcached配置与简单測试
  10. 统计twitter帖子_在Kubernetes上部署InfluxDB和Grafana以收集Twitter统计信息
  11. 【李宏毅机器学习】Why Deep Learning(p15) 学习笔记
  12. 方舟手游pvp服务器修改pvx,方舟生存进化手机版怎么玩pvx_方舟生存进化手机版pvx玩法规则介绍_好特网...
  13. 十二生肖配对表查询_天蝎座:分手后最容易复合的星座配对,一生分不开,最终重新走到一起...
  14. Golang 任意类型切片的增删改查
  15. 删除排序数组中的重复数字 II · Remove Duplicates from Sorted Array II
  16. 西电计算机学硕毕业要求,关于计算机科学与技术学院2020年12月研究生学位申请工作的通知...
  17. nfine配置oracle,nfine去后门版和数据库说明
  18. Java数据结构和算法---程序员常用10种算法
  19. Unity3D加载资源的四种方式
  20. 最近在做的一个项目,利用FFMpeg合并视频时发现的问题及解决方法

热门文章

  1. 剑指Offer - 面试题21. 调整数组顺序使奇数位于偶数前面(双指针,原地算法)
  2. LeetCode 709. 转换成小写字母
  3. mysql系统自带示例数据库_MySQL系统自带的数据库information schema
  4. 用Python进行屏幕截图,只用两行代码搞定
  5. android studio电影院选座,8排电影院选座最佳位置
  6. android制作相册浏览器_一分钟简单制作一个专属于自己的卡通头像
  7. LeetCode之最大正方形
  8. 聊聊机器翻译界的“灌水与反灌水之战”!
  9. 别再搞纯文本了!多模文档理解更被时代需要!
  10. Spring Boot多数据源配置与使用