PHP でのファイル ロックと mysql テーブル ロックの一般的な使用法は、同時に 1 人だけが操作できるようにすることで、複数の人が同じファイルを同時に操作してデータの損失につながる状況を回避します。 PHP ファイルロックの使用法については以下で説明します。
ロック メカニズムは、同時実行性によって引き起こされるリソースの競合のために存在します。操作の有効性と整合性を確保するために、ロック メカニズムを使用して同時状態をシリアル状態に変換できます。 PHP のファイル ロックもロック メカニズムの 1 つであり、リソースの競合に対処するように設計されています。大量の同時実行の場合、fwrite を使用してファイルの最後にデータを複数回書き込みます。ロックしないとどうなるでしょうか。複数の順序付けされた書き込み操作は 1 つのトランザクションに相当し、この時点でこのトランザクションの整合性を確保する必要があります。
2 つのプログラムが同時にファイルにデータを書き込む場合、データの整合性を確保するために、ファイル ロックを追加し、プログラム 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);
PHP ファイルロック関連記事の簡単な話については、PHP 中国語 Web サイトに注目してください。