gpt4 book ai didi

windows - WaitForSingleObject() vs RegisterWaitForSingleObject()?

转载 作者:可可西里 更新时间:2023-11-01 13:16:49 25 4
gpt4 key购买 nike

与使用 RegisterWaitForSingleObject() 而不是 WaitForSingleObject() 相比,优点/缺点是什么?

我知道的原因:

  1. RegisterWaitForSingleObject() 使用操作系统中已有的线程池
  2. 在使用 WaitForSingleObject() 的情况下,自己的线程应该轮询事件。

唯一的区别是轮询与自动事件?或者它们之间是否有相当大的性能优势?

最佳答案

非常简单,WaitForSingleObject() 会阻塞一个线程。它正在消耗 1 兆字节的虚拟内存,并且在它被阻塞时没有对它做任何有用的事情。在句柄收到信号之前,它不会醒来并继续做有用的事情。

RegisterWaitForSingleObject() 不会阻塞线程。线程可以继续做有用的工作。当句柄发出信号时,Windows 会获取一个线程池线程来运行您指定为回调的代码。您将在 WFSO 调用后编写的相同代码。仍然有一个线程参与运行该回调,等待线程,但它可以处理许多 RWFSO 请求。

所以最大的优势是您的程序可以使用更少的线程,同时仍然处理许多服务请求。缺点是完成代码开始运行可能需要更长的时间。而且由于该代码在另一个线程上运行,因此更难正确编程。另请注意,如果您已经使用重叠 I/O,则不需要 RWFSO。

关于windows - WaitForSingleObject() vs RegisterWaitForSingleObject()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18694593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com