ファイルロック機構(gòu)
ファイル ロック メカニズム
ファイル ロック メカニズムは、通常、単一のファイルが開かれている場合にはまったく効果がありません。學(xué)習(xí)のこの部分は少し抽象的です。
それを達(dá)成する方法を考えてみませんか?
効果が見えないのはなぜですか?
回答: コンピューターは基本的にミリ秒レベルで非常に高速に動作するためです。したがって、この実験は実際には何の効果もありません。
この章では、ファイル ロックの基本概念を理解し、ファイル ロック機能とロック メカニズムについて理解します。
ファイルロックの使用:
ある人がファイルを書き込んでいる場合、別の人もそのファイルを開いてファイルを書き込みます。
この場合、一定の確率で衝突が発生した場合、どちらの操作が優(yōu)先されるかはわかりません。
そこで今回はロック機構(gòu)を?qū)毪筏蓼埂?
ユーザー A がこのファイルの書き込みまたは読み取りを行う場合、ファイルを共有に追加します。私はそれを読むことができます、そして他の人も読むことができます。
ただし、これが事実である場合。排他ロックを使用します。このファイルは私のものです、私がファイルのロックを解除するまでは觸らないでください。
注: ファイルを追加した後は、ファイルのロックを解除するように注意してください。
この関數(shù)を見てみましょう:
bool flock ( resource $handle , int $operation)
関數(shù): 軽量の勧告ファイル ロック
ロック タイプを見てみましょう:
次に、demo.txt に排他ロックを追加し、書き込み操作を?qū)g行します。
<?php $fp = fopen("demo.txt", "r+"); // 進(jìn)行排它型鎖定 if (flock($fp, LOCK_EX)) { fwrite($fp, "文件這個時候被我獨占了喲\n"); // 釋放鎖定 flock($fp, LOCK_UN); } else { echo "鎖失敗,可能有人在操作,這個時候不能將文件上鎖"; } fclose($fp); ?>
説明:
1. 上記の例では、ファイルに書き込むために、ファイルに排他ロックを追加しました。
2. 操作が完了し、書き込みが完了すると、排他ロックが解除されます。
3. ファイルを読んでいる場合は、同じ処理の考え方に従って共有ロックを追加できます。