ホームページ >バックエンド開発 >PHPチュートリアル >PHP はシングルスレッドなので、大量の http アクセスにどう対処するか

PHP はシングルスレッドなので、大量の http アクセスにどう対処するか

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

PHP はシングルスレッドですが、大量の http アクセスにどう対処すればよいでしょうか?
当初、私は PHP が Web サイトの構築に使用できることしか知りませんでした。PHP のスレッド問題に遭遇したことはありませんでした。今日、PHP がシングルスレッドであることを突然知りましたが、Web サイトが複数人で訪問する場合はPHPを使用する必要がありますが、量が多い場合は行列が発生する可能性があります。
これは本当ですか?それとも、Apache は PHP プログラムを処理するときにサーバーを使用してマルチスレッドを実装するのでしょうか?
------解決策--------
PHP にはマルチスレッドがないため、マルチスレッドを実行できませんコード内で別のスレッドを開いて他のタスクを実行することは、複数のメインライン ロジックが同時に実行される Java のようにはできません。ただし、リクエストが来たときにこれは大量のアクセスとはほとんど関係がありません。 nginx または apache によって処理され、PHP の処理と呼び出しを同時に実行できます。これにより、スクリプトにアクセスするためのプロセスとスレッドがそれぞれ異なります。実行後(ページが開かれる)、プロセスは破棄されます。
-----解決策-----------
起動されるすべての PHP の説明 サーバーはすべて互いに独立しています
当然、サーバーによって解釈される PHP コードも互いに独立しています

いわゆるシングルトンは現在PHP コードセットを実行中
--- ---解決策-----

引用:
Quote: Quote:

PHP にはマルチスレッドがないため、コード内で別のスレッドを開いて他のタスクを実行することはできません。これは、複数の主要なロジック行が同時に実行される Java のようなものですが、リクエストは nginx または apache によって処理され、その後 php が呼び出されて処理されるため、これは大量のアクセスとは関係ありません。同時に作成することができ、スクリプトにアクセスする必要がある多くのプロセスが開きます。各プロセスは、実行後(ページが開かれた後)、各ユーザーに対応します。

シングルトン モードでは、
if($instance = = null) {
$instance = new instance();
}
これは、サーバーが処理のために複数の php スクリプトを呼び出し、2 つの呼び出しが同時に行われ、結果として 2 つの新しい What about インスタンスが作成されるためでしょうか?


はい、PHP のシングルトン モードは、現在実行中のスクリプトのみを対象とします。これは、$instance が空であるかどうかを最初に確認する必要があることも指摘しました。今回の実行では複数のオブジェクトは作成されません
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。