Windows上有NSOperationQueue的等价吗?

时间:2013-08-22 17:27:28

标签: c++ windows multithreading

在OSX或iOS上,NSOperationQueue对于调度异步任务非常有用。 Windows上是否有类似的功能?

2 个答案:

答案 0 :(得分:2)

Windows有几个Thread Pool APIs。 “旧线程池API”更像NSOperationQueue,但建议New Thread Pool API用于新代码。

答案 1 :(得分:0)

Win32最相似的API是Thread Pool API。

来自MSDN

  

线程池应用程序编程接口(API)使用基于对象的设计。以下每个对象都由用户模式数据结构表示:

     
      
  • 池对象是一组可用于执行工作的工作线程。每个进程可以根据需要创建具有不同特征的多个隔离池。每个流程都有一个默认池。

  •   
  • 清理组与一组回调生成对象相关联。存在等待并释放作为每个清理组成员的所有对象的函数。这使应用程序无需跟踪它创建的所有对象。   将工作对象分配给池,并可选择分配给清理组。它可以被发布,导致池中的工作线程执行其回调。

  •   
  • 工作对象可以有多个未完成的帖子;每个都会产生一个回调。由于缺乏资源,后期操作不会失败。

  •   
  • 计时器对象控制回调的计划。每次计时器到期时,其回调都会发布到其工作池。由于资源不足,设置计时器不会失败。

  •   
  • 等待对象导致服务器线程在等待句柄上等待。等待满足或超时期限到期后,服务员线程将等待对象的回调发送到等待的工作池。由于缺乏资源,设置等待不会失败。

  •   
  • I / O对象将文件句柄与线程池的I / O完成端口相关联。当异步I / O操作完成时,工作线程会获取操作的状态并调用I / O对象的回调。

  •