增加WaitforMultipleObjects的MAXIMUM_WAIT_OBJECTS

Jak*_*ake 5 c++ winapi multithreading

等待更多对象的最简单方法是什么MAXIMUM_WAIT_OBJECTS?MSDN列出了这个:

  • 创建一个线程来等待MAXIMUM_WAIT_OBJECTS句柄,然后等待该线程加上其他句柄.使用此技术将句柄分成几组MAXIMUM_WAIT_OBJECTS.
  • 呼吁RegisterWaitForSingleObject等待每个手柄.来自线程池的等待线程等待MAXIMUM_WAIT_OBJECTS已注册的对象,并在发出对象信号或超时间隔到期后分配工作线程.

但他们都不是很清楚.这种情况将等待一个超过一千个句柄到线程的数组.

小智 6

如果您发现自己在等待大量对象,则可能需要查看IO完成端口.对于大量并行操作,IOCP效率更高.

IOCP这个名称具有误导性,您也可以轻松地将IOCP用于您自己的同步结构.


Jon*_*age 2

看看这里

如果您需要等待超过 MAXIMUM_WAIT_OBJECTS 个句柄,则可以创建一个单独的线程来等待 MAXIMUM_WAIT_OBJECTS 个,然后等待这些线程完成。使用此方法,您可以创建 MAXIMUM_WAIT_OBJECTS 个线程,每个线程都可以等待 MAXIMUM_WAIT_OBJECTS 个对象句柄。