ホームページ  >  記事  >  PHPフレームワーク  >  スウール加工と糸の違いは何ですか?

スウール加工と糸の違いは何ですか?

WBOY
WBOYオリジナル
2022-02-10 11:41:0311950ブラウズ

違い: 1. プロセスはシステム内で実行されるプログラムであり、スレッドはプロセスに属します。プロセスは複数のスレッドを持つことができ、スレッドはプログラムの実行者です。2. 違いはありません。プロセス間で任意の状態を共有し、スレッド間で変数を共有できます。

スウール加工と糸の違いは何ですか?

このチュートリアルの動作環境: Windows10 システム、Swoole4 バージョン、DELL G3 コンピューター

swoole プロセスとスレッドの違いは何ですか

プロセス

1. プロセス間で状態は共有されません

2. プロセスのスケジューリングはオペレーティング システムによって完了されます

3.各プロセスは独自の独立したメモリ空間を持つ

4. プロセス間の通信は主にシグナル伝達によって実現され、実装方法はセマフォ、パイプ、イベントなど多数あります。メソッドはカーネルを経由する必要があるため、通信効率が比較的低い

5. 独立したメモリ空間であるため、コンテキストスイッチング時に最初のコールスタックの情報を保存する必要があり、各CPUのレジスタや仮想メモリ、オープン関係のハンドルなどの情報を保持しているため、コンテキストプロセス間の切り替えに非常にコストがかかり、通信も面倒です。

スレッド

1. スレッド間で変数を共有することで、面倒な通信の問題を解決します。変数へのアクセスにはロックが必要です。

2. 1 つのプロセスで、複数のスレッドがありますが、各スレッドは、親プロセスからオペレーティング システムによって要求されたリソースを共有します。これには、仮想メモリ、ファイルなどが含まれます。共有リソースであるため、スレッドの作成に必要なシステム リソースの使用量は、スレッドの作成に必要なシステム リソースの使用量よりもはるかに少なくなります。したがって、作成されるスレッドの数も比較的多くなりました。

3. また、スケジューリングに関しても、メモリが共有されるため、コンテキストスイッチング時に保存するものが少なくなり、コンテキストスイッチングが効率化されます。

プロセスとは何ですか?

プロセスはシステム内で実行されているプログラムであり、プログラムが実行されると、それはプロセスになります。

プロセスは、プログラム実行のインスタンスとして見ることができます。

タグ: あるプロセスは別のプロセスの変数やデータ構造にアクセスできません。あるプロセスが別のプロセスのリソースにアクセスしたい場合は、パイプ、ファイル、ソケットなどのプロセス間通信を使用する必要があります。 、など。

スレッドとは何ですか?

スレッドはプロセスに属し、プログラムの実行者です。

A プロセスには少なくとも 1 つのメイン スレッドが含まれており、さらに多くのサブスレッドを持つこともできます。各スレッドは、それが属するプロセスのスタック スペースを使用します。

スレッドはプロセスの実体であり、プロセスの実行パスです。

タグ: 同じプロセス内の複数のスレッドは状態の一部を共有し、複数のスレッドは同じメモリを読み書きできます。

推奨学習: swoole チュートリアル

以上がスウール加工と糸の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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