解決PHP多程序或多執行緒同時讀寫一個檔案問題
阿新 • • 發佈:2021-02-18
第一個檔案
$res1 = fopen("demo.txt","w+");
// 加寫鎖
if(flock($res1,LOCK_EX)){
echo "寫入1";
sleep(10);
echo "寫入2";
flock($res1,LOCK_UN);
}else{
echo " 枷鎖失敗";
}
fclose($res1);
在執行第一個檔案時,執行第二個檔案
$res2 = fopen("demo.txt" ,"w+");
// LOCK_NB 附加鎖,加了之後不會阻塞,而是直接失敗
if(flock($res2,LOCK_EX+LOCK_NB)){
echo "枷鎖成功";
}else{
echo "枷鎖失敗";
}
fclose($res2);