php文件锁 阻塞区别,php文件锁阻塞模式和非阻塞模式
1、阻塞模式(如果其它進程已經(jīng)加鎖文件,當前進程會等其它進程解鎖后繼續(xù)執(zhí)行)
$handle = fopen(‘lock.txt‘, ‘r‘);
//鎖定
if(flock($handle,LOCK_EX)){
//to do something
//解鎖
flock($handle, LOCK_UN);
}
//關閉文件
fclose($handle);
?>
2、非阻塞模式(如果其它進程已經(jīng)加鎖文件,當前進程會執(zhí)行else里面的內(nèi)容,不會等待文件解鎖)
$handle = fopen(‘lock.txt‘, ‘r‘);
if(flock($handle, LOCK_EX | LOCK_NB)){
//do something
}else{
// 提示系統(tǒng)繁忙
}
flock($handle, LOCK_UN);
fcolse($handle);
?>
注:windows不支持LOCK_NB類型鎖定文件,所以,非阻塞模式不能在windows下做驗證(筆者就遇到這個坑,一直不能執(zhí)行else里面的內(nèi)容,Linux系統(tǒng)可以執(zhí)行)
應用場景:當執(zhí)行一個腳本而阻塞其它腳本時,如:訂單狀態(tài)更改處理
原文:https://www.cnblogs.com/wheats/p/11915510.html
總結
以上是生活随笔為你收集整理的php文件锁 阻塞区别,php文件锁阻塞模式和非阻塞模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: server sql top速度变慢解决
- 下一篇: 动态规划算法php,php算法学习之动态