私は、独立した(すなわち、異なるメモリアドレスで書き込みをする)が完了するのに全く同じ時間をとらない(2から10秒まで)Nタスクを持っています。私はPスレッドを持っています。マルチスレッド独立タスク
N個のタスクをP個のスレッドに分割し、スレッドを起動することができます。最終的には最後に、最後のいくつかのタスクを完了するために1つのスレッドが残りますが、これは最適ではありません。
また、それぞれ1つのタスク、WaitForMultipleObjects、およびPスレッドなどを再起動することもできます(これは、スレッドを作成するオーバーヘッドがタスクに比べて小さいためです)。しかし、これでも問題は解決されません。P-1スレッドがある時点で最後のスレッドを待っています。
スレッドを起動する方法はありますか?スレッドがタスクを完了するとすぐに、すべてのタスクが完了するまで次の使用可能なタスクに進みますか?
ありがとうございます!
ちょうどあなたが知っているように、おそらくあなた自身でこれをやろうとしたくないでしょう。並列アルゴリズム/構造を高速かつ正確にすることは、それが聞こえるよりも困難です。 [IntelのTBB](http://threadingbuildingblocks.org/)を参照してください。 – GManNickG