プロセスとスレッド

アプリケーションは、1 つ以上のプロセスで構成されます。 最も簡単な言い方をすると、 プロセスは実行中のプログラムです。 1 つ以上のスレッドがプロセスのコンテキストで実行されます。 スレッドは、オペレーティング システムがプロセッサ時間を割り当てる基本的な単位です。 スレッドは、別のスレッドによって現在実行されている部分を含め、プロセス コードの任意の部分を実行できます。

ジョブ オブジェクトを使用すると、プロセスのグループを 1 つのユニットとして管理できます。 ジョブ オブジェクトは、それらに関連付けられているプロセスの属性を制御する、ナマブル、セキュリティ保護可能、共有可能なオブジェクトです。 ジョブ オブジェクトに対して実行される操作は、ジョブ オブジェクトに関連付けられているすべてのプロセスに影響します。

スレッド プールは、アプリケーションの代わりに非同期コールバックを効率的に実行するワーカー スレッドのコレクションです。 スレッド プールは、主にアプリケーション スレッドの数を減らし、ワーカー スレッドの管理を提供するために使用されます。

ファイバーは、アプリケーションによって手動でスケジュールする必要がある実行の単位です。 ファイバーは、それらをスケジュールするスレッドのコンテキストで実行されます。

ユーザー モード スケジューリング (UMS) は、アプリケーションが独自のスレッドをスケジュールするために使用できる軽量のメカニズムです。 UMS スレッドは、1 つのスレッドのスレッド コンテキストを共有するのではなく、各 UMS スレッドに独自のスレッド コンテキストがある点で、 ファイバー とは異なります。