當前位置:
首頁 >
php文件锁 阻塞区别,php文件锁阻塞模式和非阻塞模式
發布時間:2024/7/19
36
豆豆
生活随笔
收集整理的這篇文章主要介紹了
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文件锁阻塞模式和非阻塞模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: server sql top速度变慢解决
- 下一篇: php的declare,php 中的de