国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

php 文件鎖處機(jī)制

文件鎖機(jī)制一般在單一打開文件的時(shí)候根本看不到效果。這一塊的學(xué)習(xí)有一點(diǎn)點(diǎn)抽象。

大家不要去思考怎么實(shí)現(xiàn)的呀?

為什么看不到效果呀?
答:因?yàn)殡娔X的操作太快了,基本上是毫秒級(jí)的。所以這個(gè)實(shí)驗(yàn)其實(shí)是看不到效果的。

這一章了解文件鎖的基本概念即可,熟悉文件鎖函數(shù)和鎖機(jī)制。

文件鎖的用途:

若一個(gè)人在寫入一個(gè)文件,另外一個(gè)人同時(shí)也打個(gè)了這個(gè)文件進(jìn)行寫入文件。
這情況下,如果遇到一定的碰撞概率的話,不知道到底誰的操作為準(zhǔn)。
因此,這個(gè)時(shí)候我們引入鎖機(jī)制。
若用戶A在寫入或者讀取這個(gè)文件的時(shí)候,將文件加上共享所。我可以讀,其他人也可以讀。
但是,我如果這與的時(shí)候。我使用獨(dú)占鎖。這個(gè)文件歸我了,你們都別動(dòng),除非我將文件鎖進(jìn)行釋放。

注意:不論加上了文件鎖后要注意釋放。

我們來看看這個(gè)函數(shù):

bool flock ( resource $handle , int $operation)

功能:輕便的咨詢文件鎖定

我們來看看鎖類型:

鎖類型說明
LOCK_SH取得共享鎖定(讀取的程序)
LOCK_EX取得獨(dú)占鎖定(寫入的程序
LOCK_UN釋放鎖定(無論共享或獨(dú)占)

我們接下來把demo.txt加上一個(gè)獨(dú)占鎖,進(jìn)行寫入操作。

<?php

$fp = fopen("demo.txt", "r+");

// 進(jìn)行排它型鎖定
if (flock($fp, LOCK_EX)) { 

   fwrite($fp, "文件這個(gè)時(shí)候被我獨(dú)占了喲\n");

  // 釋放鎖定
   flock($fp, LOCK_UN);    
} else {
   echo "鎖失敗,可能有人在操作,這個(gè)時(shí)候不能將文件上鎖";
}

fclose($fp);

?>

說明:

1.上例中我為了寫入文件,把文件加上了獨(dú)占鎖。

2.如果我操作完成,寫入完成后,解除掉了獨(dú)占鎖。

3.如果是在讀取文件的時(shí)候,大家可加按照同樣的處理思路加上共享鎖。


繼續(xù)學(xué)習(xí)
||
<?php $fp = fopen("demo.txt", "r+"); // 進(jìn)行排它型鎖定 if (flock($fp, LOCK_EX)) { fwrite($fp, "文件這個(gè)時(shí)候被我獨(dú)占了喲\n"); // 釋放鎖定 flock($fp, LOCK_UN); } else { echo "鎖失敗,可能有人在操作,這個(gè)時(shí)候不能將文件上鎖"; } fclose($fp); ?>
提交重置代碼