同時プログラミングの物語 - プロセスとスレッド

プロセスとスレッド


1. 定義

プロセス: リソース割り当ての最小単位であり、スレッドのコンテナーです。実行中のプログラムは、命令の実行だけでなく IO とメモリの管理を担当します
スレッド: 実際には命令ストリームであり、プロセスのサブセットです プロセスは複数のスレッドで実行できます
違い:
1. プロセスは最小のリソース割り当て、スレッドは最小のスケジューリングです (CPU スイッチング命令ストリーム実行のスケジューリングを参照)
2. スレッドはプロセスのサブセットです
3. 同じコンピュータ内のプロセス通信は IPC であり、異なるコンピュータはHTTP 4 などのプロトコルを使用します。
スレッド切り替えのコストは低くなります。たとえば、CPU はプロセスまたはスレッドの同時実行を必要とします。スレッドは比較的軽量で、切り替え時の CPU 時間の消費が少なくなります。

2. 同時実行性と並列性

定義:
同時実行: CPU が複数のスレッドを同時に実行し、床をしばらくスキャンしてから調理するように交互に実行します 並列: 複数の炊飯器で同時に調理するように、複数の CPU が複数のスレッドを実行します

3. アプリケーション

非同期呼び出し:
プログラムの実行中に、命令ストリームをブロックするか IO 操作を実行する必要がある場合、1 つのスレッドですべての命令処理を完了するのではなく、スレッドを開いてこの命令ストリームを非同期に実行できます。
非同期呼び出しは、ビデオ形式の変換
や同時実行アプリケーションで一般的に使用されます。
同時実行によって必ずしも効率が向上するとは限りませんが、切り替えを行ったり来たりするときにリソースと時間を無駄にします。タスクによっては切り替えに適さないものもありますが、それは主にタスクの実行目的に依存します。


Guess you like

Origin blog.csdn.net/weixin_45841848/article/details/132594572