PHP の設計が始まってから普及するまで、それを解決するためにマルチスレッドを使用する必要性は明らかではありませんでした。
#マルチスレッドが必要な場合には、対応するソリューションと代替手段もあります。マルチスレッドが常にシングルスレッドより優れているわけではなく、マルチスレッドによって別の問題が発生する可能性があります (たとえば、2 つのスレッドがクラス内の同じメソッドを同時に呼び出すとデッドロックが発生する可能性があります)。 (推奨学習:
PHP プログラミング入門から習熟まで )
顧客からのページリクエスト処理に対応する PHP がシングルスレッドで処理されることが理解でき、次のステップはコード内のビジネス ロジックを編集/理解することですが、PHP は同時に多くのスレッドを開いて、多くのユーザーから要求された同じ PHP を処理できるため、PHP は「マルチネジ付き」。
#コルーチンに関しては、新しいプログラムの実行処理(古いものはシーケンス、判定、ループ)としか言えず、その本質もシングルスレッドです
! !
デフォルトでは、PHP はマルチスレッドをサポートしていません。マルチスレッドを使用するには、拡張機能をインストールする必要があります。 , 一般的に使用される拡張機能には、 pcnlt 、 POSIX、 pthreads などがありますが、最もよく使用される拡張機能は pthreads 拡張機能です。これは、マルチスレッドをサポートするために、パラメータを使用して PHP のコンパイル時にスレッドセーフな方法を指定します。スレッドを使用する場合は、まずスレッドを考慮する必要があります。 セキュリティの問題。スレッド セーフティとは、関数または関数ライブラリがマルチスレッド環境で呼び出されたときに、複数のスレッド間で共有変数を正しく処理できるため、プログラムの関数が
PHP はスレッド セーフを実現しますPHP は主に TSRM メカニズムを通じてスレッド セーフを実現します。このメカニズムを通じて、グローバル変数と静的変数を分離でき、グローバル変数と静的変数のコピーを各スレッドにコピーできます。各スレッドはメインスレッドのバックアップを使用します。これにより、変数の競合が回避され、スレッドの安全性の問題が発生しなくなります。 PHP のマルチスレッドのカプセル化によりスレッドの安全性が保証されるため、開発者は読み取りと書き込みの競合を考慮する必要がなく、コードの安全性も高まります。ただし、これには欠点もあります。たとえば、サブスレッドが実行を開始すると、メインスレッドはサブスレッドの実行の詳細を調整できなくなり、メッセージを配信できなくなります
以上がphp はマルチスレッドですか、それともシングルスレッドですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。