萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> 簡單談談 php 文件鎖

簡單談談 php 文件鎖

本文簡單談了php文件鎖,對初學php的同學來說非常有用,大家可以看看

鎖機制之所以存在是因為並發導致的資源競爭,為了確保操作的有效性和完整性,可以通過鎖機制將並發狀態轉換成串行狀態。作為鎖機制中的一種,PHP的文件鎖也是為了應對資源競爭。假設一個應用場景,在存在較大並發的情況下,通過fwrite向文件尾部多次有序的寫入數據,不加鎖的情況下會發生什麼?多次有序的寫入操作相當於一個事務,我們此時需要保證這個事務的完整性。

如果我們有兩個程序同時向某個文件中寫入數據,為了保證數據的完整性,可以加一個文件鎖,先讓程序1執行,程序1執行完後,解鎖,再讓程序2執行。實現代碼如下:

 

 代碼如下復制代碼

$fp=fopen('test.txt',"a");

$count= 10;

if(flock($fp, LOCK_EX)) {

for($i=1;$i<$count;$i++){

fwrite($fp,'text2_'.$i."rn");

echo"test2".date('h:i:s') . "

";

sleep(1);

echo"test2".date('h:i:s');

}

flock($fp, LOCK_UN);

}else{

echo"Couldn't lock the file !";

}

fclose($fp);

 

copyright © 萬盛學電腦網 all rights reserved