ホームページ > バックエンド開発 > PHPチュートリアル > PHP の flock に関する関連問題

PHP の flock に関する関連問題

WBOY
リリース: 2016-06-13 13:48:55
オリジナル
1106 人が閲覧しました

PHP の flock に関する問題
flock の問題については、私のブログにまとめました。 http://www.shionco.com/archives/php_flock.html

ルーチン コード:

$fd = fopen('./a.html', 'wb');
if ($fd) {
if (@flock($fd, LOCK_EX|LOCK_NB)) {
echo 'ロック解除されました、ファイルを開いてロックします';
sleep(10);
} else {
print 'ロックされました、ファイルを閉じます';
fclose($fd) ; > } else {
echo 'ファイルを開けませんでした';
}

FF の下に 2 ページを作成し、最初のページを開いて実行し、排他ロックが成功し、拡張子を入力しました現在の状態では、2 番目のページが開かれ、すぐに実行されます。その結果、最初のページが完了すると、2 番目のページも排他的にロックされ、実行が完了すると遅延状態になります。明らかに LOCK_NB が使用されていますが、排他ロックは発生しません。新しいタブであっても、新しいウィンドウであっても、ブロックされます。

ただし、IE (私は IE9 を使用しています。他はテストしていません) では、同じプロセスでページ 2 の直接排他ロックが失敗し、「ロックされました、ファイルを閉じます」と出力されます。

そうすると、FFのクライアントが内容が更新されたキャッシュファイルを大量に閲覧するとブロックされてしまうのではないでしょうか?




-----解決策---------
これを確認して、上記のコード
を含むファイルを作成できます。タブ付きブラウザを使用して 2 つのファイルを別々に開き、ニーズを満たしているかどうかを確認してください。 。 「はい」の場合、上記の理由です

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート