欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > php >内容正文

php

php文件锁 阻塞区别,php文件锁阻塞模式和非阻塞模式

发布时间:2024/7/19 php 41 豆豆
生活随笔 收集整理的这篇文章主要介绍了 php文件锁 阻塞区别,php文件锁阻塞模式和非阻塞模式 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

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文件锁阻塞模式和非阻塞模式的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。