シングルスレッドプロセスの特徴の一つは、順番に実行されることです。時間のかかるタスクが発生すると、未実行のタスクは待ち状態になります。前のタスクが完了するまで待ってから実行する必要があります。後で。 。
#PHP は典型的なシングル スレッドです。順番に実行する必要があります。前のスレッドが実行されないと、次のスレッドは実行できません。
もちろん、swoole を除きます (推奨学習: PHP ビデオ チュートリアル)
PHP 設計の始まりから人気に至るまで、これを解決するためにマルチスレッドを使用する必要性は明らかではありません。マルチスレッドが必要な場合には、対応するソリューションと代替手段もあります。マルチスレッドが常にシングルスレッドより優れているわけではなく、マルチスレッドによって別の問題が発生する可能性があります (たとえば、2 つのスレッドがクラス内の同じメソッドを同時に呼び出すとデッドロックが発生する可能性があります)。 顧客からのページリクエスト処理に対応するPHPは単一のスレッドで処理されることがわかり、コード内のビジネスロジックを上から下まで編集・理解することができますが、PHPでは多くのスレッドで処理することができます。多くのユーザーから要求された同じ PHP を処理するために同時に開かれるため、PHP は「マルチスレッド」とみなすこともできます。 各 PHP ファイルの実行はシングルスレッドですが、サーバー (apache/nigix/php-fpm) はマルチスレッドです。特定の PHP ファイルがサーバーによってアクセスされるたびに、対応する PHP ファイルを実行するための新しいプロセス/スレッドが作成されます。つまり、PHP は 1 つのリクエストに対してシングルスレッドですが、複数のリクエストは同時に実行されます。
実際、一般に PHP プログラムを作成する場合、それはシングルスレッドであると見なされます。複数のリクエスト間の関係により、データベース、ファイル、セッションなどの読み取りと書き込みがロックされる場合があり、これにより後続のリクエストがハングし、前のリクエストが完了するまで待機してから続行されます。 コルーチンに関しては、新しいプログラムの実行処理(古いものはシーケンス、判定、ループ)としか言えず、その本質もシングルスレッドです正確に言うと、PHP はシングルスレッドでも、ある程度は「マルチスレッド」とみなすことができます。 ! !以上がPHPシングルスレッドを理解する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。