CPU を集中的に使用するジョブを複数のスレッドに分割したいと考えています。たとえば、4 つのスレッドでスレッド プールを作成したいと考えています。
以下を行うための非常に迅速な方法を知りたいです。
- 受信処理用に 1 つのスレッドが空いているかどうかを確認する
- 特定の関数を開始するように 1 つのスレッドにシグナルを送る
- すべてのスレッドがジョブを完了するのを待ちます
これは可能な限り高速にする必要があります。Windows 7 の Visual Studio 2010 で C++ を使用しています。ポータブル アプローチよりも高速な場合は、Win7/VS2010 固有のソリューションが優先されます。
編集: MSDN でこのサンプルを見つけました:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms686946(v=vs.85).aspx
これを行うより速い方法はありますか?