线程池API
线程池应用程序编程接口(API)使用基于对象的设计。以下每个对象都由用户模式数据结构表示:
- 池对象是一组可用于执行工作的工作线程。每个进程可以根据需要创建具有不同特征的多个隔离池。每个进程都有一个默认池。
- 清理组与一组回调生成对象相关联。存在等待并释放作为每个清理组成员的所有对象的函数。这使应用程序无需跟踪它创建的所有对象。
- 将工作对象分配给池,并可选择分配给清理组。它可以被发布,导致池中的工作线程执行其回调。工作对象可以有多个未完成的帖子; 
 每个都会产生一个回调。由于缺乏资源,后期操作不会失败。
- 计时器对象控制回调的调度。每次计时器到期时,其回调都会发布到其工作池。由于缺乏资源,设置计时器不会失败。 
 等待对象导致服务器线程在等待句柄上等待。在等待或超时期限到期后,服务员线程将等待对象的回调发布到等待的工作池。由于缺乏资源,设置等待不会失败。
- I / O对象将文件句柄与线程池的I / O完成端口相关联。当异步I / O操作完成时,工作线程会获取操作的状态并调用I / 
 O对象的回调。
下表描述了原始和当前线程池API的功能。
| 特征 | 原始API | 当前的API | 
|---|---|---|
| 同步 | RegisterWaitForSingleObject | CloseThreadpoolWait | 
| UnregisterWaitEx | CreateThreadpoolWait | |
| SetThreadpoolWait | ||
| WaitForThreadpoolWaitCallbacks | ||
| 工作 | QueueUserWorkItem | CloseThreadpoolWork | 
| CreateThreadpoolWork | ||
| SubmitThreadpoolWork | ||
| TrySubmitThreadpoolCallback | ||
| WaitForThreadpoolWorkCallbacks | ||
| 计时器 | CreateTimerQueue | CloseThreadpoolTimer | 
| CreateTimerQueueTimer | CreateThreadpoolTimer | |
| ChangeTimerQueueTimer | IsThreadpoolTimerSet | |
| DeleteTimerQueueTimer | SetThreadpoolTimer | |
| DeleteTimerQueueEx | WaitForThreadpoolTimerCallbacks | |
| I / O | BindIoCompletionCallback | CancelThreadpoolIo | 
| CloseThreadpoolIo | ||
| CreateThreadpoolIo | ||
| StartThreadpoolIo | ||
| WaitForThreadpoolIoCallbacks | ||
| 清理 | CloseThreadpoolCleanupGroup | |
| CloseThreadpoolCleanupGroupMembers | ||
| CreateThreadpoolCleanupGroup | ||
| 池 | CloseThreadpool | |
| CreateThreadpool | ||
| SetThreadpoolThreadMaximum | ||
| SetThreadpoolThreadMinimum | ||
| 回调环境 | DestroyThreadpoolEnvironment | |
| InitializeThreadpoolEnvironment | ||
| SetThreadpoolCallbackCleanupGroup | ||
| SetThreadpoolCallbackLibrary | ||
| SetThreadpoolCallbackPool | ||
| SetThreadpoolCallbackPriority | ||
| SetThreadpoolCallbackRunsLong | ||
| 回调 | CallbackMayRunLong | |
| 回调清理 | DisassociateCurrentThreadFromCallback | |
| FreeLibraryWhenCallbackReturns | ||
| LeaveCriticalSectionWhenCallbackReturns | ||
| ReleaseMutexWhenCallbackReturns | ||
| ReleaseSemaphoreWhenCallbackReturns | ||
| SetEventWhenCallbackReturns | 
相关话题
线程池
使用线程池功能