#このチュートリアルの動作環境: Windows 10 システム、DELL G3 コンピューター。 親プロセスと子プロセスは同時に実行できますか?親プロセスと子プロセスは同時に実行できます。親プロセスと子プロセスは両方とも、システムによるリソース割り当ての最小単位です。これらは独立したプロセスであり、同時に実行できます。同時実行性はありません。ミクロでは同時に実行されているものを、時間をいくつかに区切るだけで、複数の処理が交互に高速に実行され、マクロで見ると、これらの処理がすべて実行されているように見えます。
親プロセスと子プロセスは両方ともリソースの最小単位であるため、同時に実行できます。プロセスとスレッドの関係とは異なり、独立したプロセスを同時に実行できます。 「
Parallel」は、2 人がそれぞれシャベルで穴を掘るように、ミクロとマクロの両方が同時に実行されることを意味します。1 時間後には、各人に大きな穴が開きます。 "
Concurrency" は、ミクロな観点から見ると、同時に実行されるわけではありません。複数のプロセスが迅速かつ交互に実行できるように、時間をいくつかのセグメントに分割しているだけです。マクロな観点から見ると、実行は二人で同じシャベルを使って順番に穴を掘るようなもので、1時間後にはそれぞれ小さい穴を掘り、大きい穴を2つ掘ろうと思ったら確実に2時間はかかります。 上記の本質から、複数のプロセスにリソースの競合がある場合、「同時」実行によって実行効率が根本的に改善されないことを理解するのは難しくありません。
父プロセスと息子プロセスは同時実行されます。単一プロセッサでは、マルチ処理はあまり意味がありません。単一プロセッサでのマルチタスクは、同時実行 (タイム スライスで交互にポーリング) することしかできません。現時点では、巨視的にはマルチ処理です。 -タスク: 一緒に実行すると、ミクロな観点から見ると、実際には交互のタイム スライスで実行されます。そのため、マクロ的な観点から見ると、一緒に実行されますが、1 つのプロセスと 1 つのプロセスの実行にかかる時間はあまり節約されません。サスペンドやスリープがない場合は、タイムスライス内のカーネルの連続プロセス変換にも消費されるため、少し時間がかかる場合があります。
しかし、マルチプロセッサでは、マルチタスクによって実際に並列処理を実現できます。複数のプロセスが異なるプロセッサ上で実行されます。リソースの競合や同期が必要な場合にのみ、一時停止して他のプロセスを待ちます。時間は実際に非同期かつ同時に実行されます。しかし、前述したように、複数のプロセスでリソースの競合が発生すると、根本的に実行効率は向上しません。
さらに関連する知識については、
FAQ以上が親プロセスと子プロセスは同時に実行できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。