我有N個任務,它們是獨立的(即寫入不同的內存地址),但不需要完全相同的時間完成(例如2到10秒)。我有P線程。多線程獨立任務
我可以將我的N個任務分成P個線程,並啓動我的線程。最終,最後會剩下一個線程來完成最後幾項任務,這不是最優的。
我也可以啓動P線程,每個線程有1個任務,WaitForMultipleObjects,並重新啓動P線程等(這就是我目前所做的,因爲與任務相比,創建線程的開銷很小)。但是,這也不能解決問題,在某些時候仍然會有P-1線程等待最後一個線程。
有沒有辦法啓動線程,只要線程完成任務,就繼續下一個可用任務,直到完成所有任務?
謝謝!
就這麼你知道,你可能不想嘗試自己做這個。使併發算法/結構既快速又正確比聽起來更難。查看[Intel的TBB](http://threadingbuildingblocks.org/)。 – GManNickG 2012-03-13 23:01:32