在 OSX 或 iOS 上,NSOperationQueue 对于调度异步任务非常有用。Windows上有类似的设施吗?
问问题
287 次
2 回答
2
Windows 有几个线程池 API。“旧线程池 API”更像是NSOperationQueue
,但新代码推荐使用新线程池 API 。
于 2013-08-22T17:43:37.910 回答
0
与 Win32 最相似的 API 是线程池API。
来自MSDN:
线程池应用程序编程接口 (API) 使用基于对象的设计。以下每个对象都由用户模式数据结构表示:
池对象是一组可用于执行工作的工作线程。每个进程可以根据需要创建多个具有不同特征的隔离池。每个进程还有一个默认池。
清理组与一组回调生成对象相关联。存在等待和释放作为每个清理组成员的所有对象的函数。这使应用程序无需跟踪它创建的所有对象。一个工作对象被分配给一个池,并且可选地分配给一个清理组。它可以被发布,从而导致池中的工作线程执行其回调。
一个工作对象可以有多个未完成的职位;每个都会生成一个回调。发布操作不会因资源不足而失败。
计时器对象控制回调的调度。每次计时器到期时,它的回调都会发布到它的工作池中。设置计时器不会因资源不足而失败。
等待对象导致等待者线程在等待句柄上等待。等待满足或超时期限到期后,等待线程将等待对象的回调发布到等待的工作池。设置等待不会因资源不足而失败。
I/O 对象将文件句柄与线程池的 I/O 完成端口相关联。当异步 I/O 操作完成时,工作线程获取操作的状态并调用 I/O 对象的回调。
于 2013-08-22T17:41:58.130 回答