程式碼來解決多程序/執行緒同時讀寫一個檔案的問題。
阿新 • • 發佈:2019-02-17
大家都知道,PHP是沒有多執行緒概念的,儘管如此我們仍然可以用“不完美”的方法來模擬多執行緒。簡單的說,就是佇列處理。通過對檔案進行加鎖和解鎖,來實現。當一個檔案被一個使用者操作時,該檔案是被鎖定的,其他使用者只能等待,確實不夠完美,但是也可以滿足一些要求不高的應用。
function T_put($filename,$string){
//追加方式開啟
$fp = fopen($filename,'a');
//加寫鎖
if (flock($fp, LOCK_EX)){
//寫檔案
fputs($fp ,$string);
//解鎖
flock($fp, LOCK_UN);
}
fclose($fp);
}
function T_get($filename,$length){
//追加方式開啟
$fp = fopen($filename,'r');
//加讀鎖
if (flock($fp, LOCK_SH)){
//讀取檔案
$result = fgets($fp,$length);
//解鎖
flock($fp, LOCK_UN);
}
fclose($fp);
}