线程池 API

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

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

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

特征 原始 API 当前 API
同步 RegisterWaitForSingleObject
UnregisterWaitEx
CloseThreadpoolWait
CreateThreadpoolWait
SetThreadpoolWait
WaitForThreadpoolWaitCallbacks
工作 QueueUserWorkItem
CloseThreadpoolWork
CreateThreadpoolWork
SubmitThreadpoolWork
TrySubmitThreadpoolCallback
WaitForThreadpoolWorkCallbacks
定时器 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
回调清理 DisassociateCurrentThreadFromCallback
FreeLibraryWhenCallbackReturns
LeaveCriticalSectionWhenCallbackReturns
ReleaseMutexWhenCallbackReturns
ReleaseSemaphoreWhenCallbackReturns
SetEventWhenCallbackReturns

 

线程池

使用线程池函数