違い: 1. プロセスはシステム内で実行されるプログラムであり、スレッドはプロセスに属します。プロセスは複数のスレッドを持つことができ、スレッドはプログラムの実行者です。2. 違いはありません。プロセス間で任意の状態を共有し、スレッド間で変数を共有できます。
このチュートリアルの動作環境: Windows10 システム、Swoole4 バージョン、DELL G3 コンピューター
プロセス
1. プロセス間で状態は共有されません
2. プロセスのスケジューリングはオペレーティング システムによって完了されます
3.各プロセスは独自の独立したメモリ空間を持つ
4. プロセス間の通信は主にシグナル伝達によって実現され、実装方法はセマフォ、パイプ、イベントなど多数あります。メソッドはカーネルを経由する必要があるため、通信効率が比較的低い
5. 独立したメモリ空間であるため、コンテキストスイッチング時に最初のコールスタックの情報を保存する必要があり、各CPUのレジスタや仮想メモリ、オープン関係のハンドルなどの情報を保持しているため、コンテキストプロセス間の切り替えに非常にコストがかかり、通信も面倒です。
スレッド
1. スレッド間で変数を共有することで、面倒な通信の問題を解決します。変数へのアクセスにはロックが必要です。
2. 1 つのプロセスで、複数のスレッドがありますが、各スレッドは、親プロセスからオペレーティング システムによって要求されたリソースを共有します。これには、仮想メモリ、ファイルなどが含まれます。共有リソースであるため、スレッドの作成に必要なシステム リソースの使用量は、スレッドの作成に必要なシステム リソースの使用量よりもはるかに少なくなります。したがって、作成されるスレッドの数も比較的多くなりました。
3. また、スケジューリングに関しても、メモリが共有されるため、コンテキストスイッチング時に保存するものが少なくなり、コンテキストスイッチングが効率化されます。
プロセスとは何ですか?
プロセスはシステム内で実行されているプログラムであり、プログラムが実行されると、それはプロセスになります。
プロセスは、プログラム実行のインスタンスとして見ることができます。
タグ: あるプロセスは別のプロセスの変数やデータ構造にアクセスできません。あるプロセスが別のプロセスのリソースにアクセスしたい場合は、パイプ、ファイル、ソケットなどのプロセス間通信を使用する必要があります。 、など。
スレッドとは何ですか?
スレッドはプロセスに属し、プログラムの実行者です。
A プロセスには少なくとも 1 つのメイン スレッドが含まれており、さらに多くのサブスレッドを持つこともできます。各スレッドは、それが属するプロセスのスタック スペースを使用します。
スレッドはプロセスの実体であり、プロセスの実行パスです。
タグ: 同じプロセス内の複数のスレッドは状態の一部を共有し、複数のスレッドは同じメモリを読み書きできます。
推奨学習: swoole チュートリアル
以上がスウール加工と糸の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。