スレッド プール API
スレッド プール アプリケーション プログラミング インターフェイス (API) では、オブジェクトベースの設計が使用されます。 次の各オブジェクトは、ユーザー モードのデータ構造で表されます。
- プール オブジェクトは、作業の実行に使用できるワーカー スレッドのセットです。 各プロセスでは、必要に応じて異なる特性を持つ複数の分離プールを作成できます。 また、各プロセスの既定のプールもあります。
- クリーングループは、コールバック生成オブジェクトのセットに関連付けられます。 各クリーングループのメンバーであるすべてのオブジェクトを待機して解放する関数が存在します。 これにより、アプリケーションが作成したすべてのオブジェクトを追跡できなくなります。
- 作業オブジェクトはプールに割り当てられ、必要に応じてクリーングループに割り当てられます。 これはポストすることができ、プールからのワーカー スレッドがそのコールバックを実行します。 1 つの作業オブジェクトに、未処理の複数の投稿を含めることができます。それぞれがコールバックを生成します。 リソースがないため、ポスト操作を失敗させることはできません。
- タイマー オブジェクトは、コールバックのスケジュール設定を制御します。 タイマーの有効期限が切れるたびに、そのコールバックはワーカー プールにポストされます。 リソースがないため、タイマーの設定は失敗しません。
- wait オブジェクトを使用すると、待機可能なハンドルで待機スレッドが待機します。 待機が満たされるか、タイムアウト期間が経過すると、待機スレッドは待機オブジェクトのコールバックを待機のワーカー プールにポストします。 リソースがないため、待機の設定は失敗しません。
- I/O オブジェクトは、ファイル ハンドルをスレッド プールの I/O 完了ポートに関連付けます。 非同期 I/O 操作が完了すると、ワーカー スレッドは操作の状態を取得し、I/O オブジェクトのコールバックを呼び出します。
次の表では、元のスレッド プール API と現在のスレッド プール API の機能について説明します。
関連トピック