ホームページ >バックエンド開発 >PHPの問題 >PHPはマルチプロセスですか、それともマルチスレッドですか?

PHPはマルチプロセスですか、それともマルチスレッドですか?

王林
王林オリジナル
2019-09-30 11:54:265002ブラウズ

PHPはマルチプロセスですか、それともマルチスレッドですか?

php 開発では、マルチスレッド開発も発生するため、プロセスとスレッドを理解する必要があります。では、プロセスとスレッドとは何でしょうか?

1. プロセスとは

プロセスとはプログラム実行のインスタンスであり、CPU やメモリなどのリソースに割り当てることができます。通常、プロセスには命令セットとシステム リソースが含まれます。命令セットはコードであり、システム リソースには CPU、メモリ、I/O などが含まれます。

2. スレッドとは何ですか?

スレッドはプロセスの実行ストリームです。スレッドはシステム リソースを割り当てることはできません。プロセスの一部であり、実行されます。プロセスよりも独立して小さい単位。

このプロセスには 2 つの特徴があります:

1. リソースの所有権

2. 実行のスケジュール (命令セット)

Thread Itは実行スケジュールの一部であり、プロセス実行のパスを指し、プログラム実行フローとも呼ばれます。スレッドは軽量プロセスと呼ばれることもあります。

PHPはマルチプロセスですか、それともマルチスレッドですか?

3. プロセスとスレッドの関係

プロセスは土地 (システム リソース) を持つ家主のようなもので、スレッドはテナントのようなものです (スレッド、ファーミング プロセスを実行します)。各家主 (プロセス) には、動作するテナント (スレッド) が 1 つだけ必要です。プロセス - リソース割り当ての最小単位であり、比較的堅牢であり、通常、クラッシュは他のプロセスに影響を与えませんが、プロセスの切り替えはリソースを消費し、効率が低下します。

スレッド - プログラム実行の最小単位。独立したアドレス空間はありません。1 つのスレッドが停止するとプロセス全体が停止する可能性がありますが、リソースが節約され、スイッチング効率が高くなります。

4. PHP プログラミングの一般的なプロセスとスレッド

1. Web アプリケーションでは、PHP にアクセスするたびに PHP プロセスを作成します。また、少なくとも 1 つの PHP スレッドを作成します。

2. PHP はマルチプロセス プログラミングに pcntl を使用します。

3. PHP はマルチスレッド プログラミングに pthreads を使用します。

4. nginx の各プロセスにはスレッドが 1 つだけあります. 各スレッドは複数のクライアントからのアクセスを処理できます

5. php-fpm はマルチプロセス モデルを使用します。各プロセスにはスレッドが 1 つだけあり、各スレッドは 1 つのクライアント アクセスのみを処理できます。

6. Apache は、使用される SAPI に応じて、マルチプロセス モデルまたはマルチスレッド モデルを使用する場合があります。

推奨チュートリアル: PHP ビデオ チュートリアル

以上がPHPはマルチプロセスですか、それともマルチスレッドですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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