windows线程池

       我们知道,线程的频繁创建和销毁是比较消耗系统资源的,因此,OS在处理一些任务时,发明了线程池(ThreadPool)这个东西。线程池是若干线程的容器,负责调度和管理这些线程,而这些线程用于处理一些事物请求。有了线程池,我们很多情况下不需要自己createthread。

线程池需要具备的几个元素

1)  线程池要有个列表,来管理多个线程对象。

2)  线程池要提供获取空闲(IDLE)线程方法

3)  线程池中的线程,具体执行的内容,可自定义。

4)  线程池中的线程,使用完毕后,还能被收回,供下次使用。

这个图是线程池的简单示意



下面是一些线程池的API,分别是适用于vista和以前的OS版本。

Feature

Original API(XP)

Current API

Synch

RegisterWaitForSingleObject

UnregisterWaitEx

CloseThreadpoolWait

CreateThreadpoolWait

SetThreadpoolWait

WaitForThreadpoolWaitCallbacks

Work

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

Clean-up group

 

CloseThreadpoolCleanupGroup

CloseThreadpoolCleanupGroupMembers

CreateThreadpoolCleanupGroup

Pool

 

CloseThreadpool

CreateThreadpool

SetThreadpoolThreadMaximum

SetThreadpoolThreadMinimum

Callback environment

 

DestroyThreadpoolEnvironment

InitializeThreadpoolEnvironment

SetThreadpoolCallbackCleanupGroup

SetThreadpoolCallbackLibrary

SetThreadpoolCallbackPool

SetThreadpoolCallbackRunsLong

Callback

 

CallbackMayRunLong

Callback clean up

 

DisassociateCurrentThreadFromCallback

FreeLibraryWhenCallbackReturns

LeaveCriticalSectionWhenCallbackReturns

ReleaseMutexWhenCallbackReturns

ReleaseSemaphoreWhenCallbackReturns

SetEventWhenCallbackReturns




你可能感兴趣的:(windows线程池)