ホームページ  >  記事  >  バックエンド開発  >  PHPでのファイルロック

PHPでのファイルロック

WBOY
WBOYオリジナル
2016-06-23 13:01:20880ブラウズ

ab を同時実行に使用すると、インベントリの削減に一貫性がないことがわかりました。なぜですか?

回答: 主な理由は、同時実行中に複数の PHP プログラムが同じリソースを操作し、リソースの競合とデータの不整合が発生することです。この問題を解決するには、php でファイル ロックを使用できます。複数の PHP プログラムが特定のリソースを操作する場合、最初にロック リソースを取得する必要があります。ロックを取得したプログラムのみがリソースを操作する権限を持ちます。操作が完了したら、他のプログラムが再度ロック リソースを取得できるように、ロック リソースを解放します

1. ロック、テキスト ファイルを作成し、任意の名前を付けます。lock.txt

$key = fopen('lock .txt' ,'r');

do{

$lockStatus = flock($key,LOCK_EX);//ロックを取得します

//phpがCPUを占有するのを防ぐため

usleep(50000);/ /0.05s

一方 (! while (! 1回の操作で複数のプログラムを操作することで、

$ SQL = "Select * from Kucun WHERE GOORE GOORE_ID = 1";

$ resql_query ($ SQL);

$データ['kucun']--;

$data['kucun']--; 在庫が減少しています ";

FLOCK ($ Lockstatus, LOCK_UN); // ロックを解放します

}} Else {

{「システムがビジーです!」

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