ホームページ  >  記事  >  運用・保守  >  Linuxのスレッドとプロセスの違い

Linuxのスレッドとプロセスの違い

王林
王林オリジナル
2019-11-02 17:10:126054ブラウズ

Linuxのスレッドとプロセスの違い

1. スレッドとプロセスの概念

プロセス: 実行中のプログラムであり、システムにリソースを割り当てる最小単位です。

スレッド: プロセス内の実行パスであり、システム スケジューリングの最小単位です。

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

1. プロセスは複数のスレッドを持つことができ、スレッドは 1 つのプロセス (従属) にのみ属することができます。

2. 同じプロセス下のすべてのスレッドは、プロセス下のすべてのリソース (リソース) を共有します。

3. プロセッサ上で実際に実行されるのはプロセスではなくスレッドです。スレッドはプロセス内の実行単位であり、プロセス内のスケジュール可能なエンティティ (実行エンティティ) です。

3. スレッドとプロセスの違い

スケジューリング: スレッドはスケジューリングの基本単位であり、プロセスはリソース所有権の基本単位です。

同時実行: プロセスとスレッド間で同時実行が発生する可能性があります。

リソース: プロセスは、リソースを所有する独立した単位です。スレッドはシステム リソースを所有しませんが、プロセスに属するリソースにアクセスできます。スレッドは独自のスタック スペースとプログラム カウンタを持ちます。

システム オーバーヘッド: プロセス オーバーヘッドはスレッド オーバーヘッドよりも大きく、スレッド コンテキストの切り替えはプロセス間コンテキストの切り替えよりもはるかに高速です。

各プロセス内の複数のスレッドでは、静的データ セグメント (グローバル変数、静的オブジェクトを含む)、ヒープ (ヒープ、malloc および new によって割り当てられた領域) が共有されます。各スレッドには、ローカル変数を保存するための独自の独立したスタックがあります。

推奨チュートリアル: linux チュートリアル

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

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