1. 程式人生 > 其它 >解決PHP多程序或多執行緒同時讀寫一個檔案問題

解決PHP多程序或多執行緒同時讀寫一個檔案問題

技術標籤:phpflock多程序

第一個檔案


$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);

執行結果

檔案一

在這裡插入圖片描述

檔案二執行結果

在這裡插入圖片描述