2

我有一个vector<HANDLE>. 我想等他们全部完成。我不想将它们复制到数组中。无论如何这样做并使用WaitForMultpleObjects,而不是WaitForSingleObject在循环中使用(如果有的话)有什么好处?

谢谢!

4

1 回答 1

2

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

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

于 2011-12-18T05:11:22.947 回答