线程池 API

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

  • 池对象是一组可用于执行工作的工作线程。 每个进程可以根据需要创建具有不同特征的多个隔离池。 每个进程还有一个默认池。
  • 清理组与一组回调生成对象相关联。 函数存在以等待并释放作为每个清理组成员的所有对象。 这样,应用程序就无需跟踪它创建的所有对象。
  • 将工作对象分配给池,并选择性地分配给清理组。 可以发布它,导致池中的工作线程执行其回调。 一个工作对象可以有多个未完成的职位:每个都会生成回调。 由于缺少资源,后操作不能失败。
  • 计时器对象控制回调的计划。 计时器每次过期时,其回调都会发布到其辅助角色池。 由于缺少资源,设置计时器不能失败。
  • wait 对象导致等待线程等待可等待句柄。 满足等待条件或超时期限到期后,等待者线程会将等待对象的回调发布到等待的工作器池。 由于缺少资源,设置等待不能失败。
  • I/O 对象将文件句柄与线程池的 I/O 完成端口相关联。 异步 I/O 操作完成后,工作线程将选取操作的状态并调用 I/O 对象的回调。

下表介绍了原始和当前线程池 API 的功能。

Feature 原始 API 当前 API
同步 RegisterWaitForSingleObject
UnregisterWaitEx
CloseThreadpoolWait
CreateThreadpoolWait
SetThreadpoolWait
WaitForThreadpoolWaitCallbacks
工作 QueueUserWorkItem
CloseThreadpoolWork
CreateThreadpoolWork
SubmitThreadpoolWork
TrySubmitThreadpoolCallback
WaitForThreadpoolWorkCallbacks
Timer CreateTimerQueue
CreateTimerQueueTimer
ChangeTimerQueueTimer
DeleteTimerQueueTimer
DeleteTimerQueueEx
CloseThreadpoolTimer
CreateThreadpoolTimer
IsThreadpoolTimerSet
SetThreadpoolTimer
WaitForThreadpoolTimerCallbacks
I/O BindIoCompletionCallback
CancelThreadpoolIo
CloseThreadpoolIo
CreateThreadpoolIo
StartThreadpoolIo
WaitForThreadpoolIoCallbacks
清理组 CloseThreadpoolCleanupGroup
CloseThreadpoolCleanupGroupMembers
CreateThreadpoolCleanupGroup
CloseThreadpool
CreateThreadpool
SetThreadpoolThreadMaximum
SetThreadpoolThreadMinimum
回调环境 DestroyThreadpoolEnvironment
InitializeThreadpoolEnvironment
SetThreadpoolCallbackCleanupGroup
SetThreadpoolCallbackLibrary
SetThreadpoolCallbackPool
SetThreadpoolCallbackPriority
SetThreadpoolCallbackRunsLong
回调 CallbackMayRunLong
回调清理 取消关联CurrentThreadFromCallback
FreeLibraryWhenCallbackReturns
LeaveCriticalSectionWhenCallbackReturns
ReleaseMutexWhenCallbackReturns
ReleaseSemaphoreWhenCallbackReturns
SetEventWhenCallbackReturns

 

线程池

使用线程池函数