ホームページ >バックエンド開発 >PHPチュートリアル >PHP で flock を使用してファイルを書き込むブロッキング方法と非ブロッキング方法の比較

PHP で flock を使用してファイルを書き込むブロッキング方法と非ブロッキング方法の比較

小云云
小云云オリジナル
2018-02-08 09:41:511627ブラウズ

この記事では主に、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));

関連する推奨事項:

php のコルーチンとブロックについての深い理解

古典的な タグの使用例の詳細な説明

同期、非同期、ブロッキング、ノンブロッキングの違いの説明

以上がPHP で flock を使用してファイルを書き込むブロッキング方法と非ブロッキング方法の比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。