PHP が flock を使用して書き込みファイルと非ブロック書き込みファイルをブロックする方法の説明:
書き込みコードのブロック: (すべてのプログラムは、最後のプログラムの実行が終了するのを待ってから実行され、30 秒でタイムアウトします)
<?php$file = fopen("test.txt","w+"); $t1 = microtime(TRUE);if (flock($file,LOCK_EX)) { sleep(10); fwrite($file,"Write something"); flock($file,LOCK_UN); echo "Ok locking file!"; }else{ echo "Error locking file!"; } fclose($file); $t2 = microtime(TRUE);echo sprintf("%.6f",($t2-$t1));
ノンブロッキング書き込みコード:(ファイルが占有されている限り、ファイルロックエラーが表示されます!):
<?php$file = fopen("test.txt","a+"); $t1 = microtime(TRUE);if (flock($file,LOCK_EX|LOCK_NB)) { sleep(10); fwrite($file,"Write something"); flock($file,LOCK_UN); echo "Ok locking file!"; }else{ echo "Error locking file!"; } fclose($file); $t2 = microtime(TRUE);echo sprintf("%.6f",($t2-$t1));
以上がflock を使用して PHP でブロッキング ファイルと非ブロッキング ファイルを書き込む例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。