ホームページ  >  記事  >  バックエンド開発  >  PHP同期モーション

PHP同期モーション

WBOY
WBOYオリジナル
2016-06-13 13:11:59750ブラウズ

php 同期ソリューション
MySQL のドキュメントによると、PHP の同期実行は非常に面倒です。


======================================== ===== ======================
GET_LOCK(str,timeout)
指定された名前の string でロックを取得しようとしますstr、タイムアウトあり 秒。ロックが正常に取得された場合は 1、操作がタイムアウトした場合 (たとえば、別のクライアントが事前に名前をブロックしたため) は 0、エラーが発生した場合 (メモリ不足またはスレッド mysqladmin kill が切断された場合など) は NULL を返します。 。 GET_LOCK()でロックを取得している場合は、RELEASE_LOCK()を実行するか、接続が切断される(正常または異常)ときにロックが解除されます。

この関数は、アプリケーションのロックを実行したり、レコードのロックをシミュレートしたりするために使用できます。名前はサーバー全体でロックされます。名前がクライアントによってすでにブロックされている場合、GET_LOCK() は別のクライアントからの同じ名前をブロックするリクエストをブロックします。これにより、ロック名に同意したクライアントは、その名前を使用して勧告ロックを実行する際に協力できるようになります。ただし、連携クライアントのグループに属していないクライアントも、サービス中または意図せずに名前をブロックできるため、連携クライアントが名前をブロックできないことに注意してください。この状況の発生を減らす 1 つの方法は、データベース固有またはアプリケーション固有のブロック名を使用することです。たとえば、db_name.str または app_name.str の形式のブロック名を使用します。


======================================== ===== ======================

ユーザーがファイルに同時にアクセスしたくない場合は、連続してアクセスされる

ファイル a.php が 2 つのリクエストによって同時にアクセスされることを望まない場合は、次のようにすることができます。

$db = getdb(); // データベースを取得します。繋がり。

$db->query('do get_locak');

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