在循环中使用WaitForMultipleObjects而不是WaitForSingleObject有什么好处?

时间:2011-12-18 05:05:03

标签: asynchronous vector synchronization waitforsingleobject waitformultipleobjects

我有vector<HANDLE>。我想等待所有人完成。我不想将它们复制到数组中。无论如何使用WaitForMultpleObjects这样做有什么好处,而不是在循环中使用WaitForSingleObject

谢谢!

1 个答案:

答案 0 :(得分:2)

首先,在我所知道的每个C ++编译器中,向量在内部是一个数组,您可以使用&yourvector[0]获得指向数组的指针。在C ++ 11中,我认为标准也需要这种行为。所以没有必要复制。

至于好处,WaitForMultipleObjects将减少你醒来的次数,节省一些少量的CPU时间。它还将同时以原子方式获取所有HANDLE - 如果你有一堆互斥或信号量对象并且需要全部锁定它们,这可能很重要。