2

PHPの基本的な質問でしたらすみません。私はデスクトップアプリの開発者なので、よくわかりませんが、

さまざまな言語でロック、同期、またはクリティカル セクションを使用して、複数のスレッドで共通のリソースにアクセスするのと同じように。スクリプト (php) が複数の異なるクライアントから同時にアクセスされた場合、複数のスレッドで処理されるという私の仮定は正しいですか? 共通のレコードを更新している場合、同期が必要ですか?

Phpでどのように行われますか?

私の場合、PHP ページには複数の Android クライアントがアクセスしており、同じレコードまたはテーブル行を変更/アクセスしている可能性があります。

4

3 に答える 3

1

サーバーへのアクセスについて話している場合、それがスレッド化されているかどうかはサーバーに依存し (Apache はそうでない、nginx はそうであるなど)、それは PHP 自体 (スレッド化されていない) とは何の関係もありません。

いずれにせよ、MySQL について話している場合は、別の話になります。MySQL は接続セッションごとに機能するためです (データベース全体ではなく、接続に依存するなどCURRENT_TIMESTAMP) LAST_INSERT_ID()。したがって、次のようなものがある場合:

//some insert query
$stmt->execute();
$id = $connection->insert_id;
$stmt2->execute($id);

stmt...最初のものが実行される前に何度も実行されてもstmt2、接続が同じであるため、ID は正しいという点で「安全」です。

于 2012-10-02T10:04:10.243 に答える