CThreadPool选件类
此选件类提供的辅助线程池处理工作项队列。
template <
class Worker,
class ThreadTraits = DefaultThreadTraits
>
class CThreadPool :
public IThreadPoolConfig
参数
辅助
与提供代码的 辅助原型 的选件类用于在线程池队列的处理工作项。ThreadTraits
提供功能的选件类创建线程在池。
成员
公共构造函数
名称 |
描述 |
---|---|
线程池的构造函数。 |
|
线程池的析构函数。 |
公共方法
名称 |
描述 |
---|---|
IUnknown::AddRef 的实现。 |
|
调用此方法获取线程数。该池的。 |
|
调用此方法获取用于IO的完成端口的处理排队工作项。 |
|
调用此方法获取线程数。该池的。 |
|
在毫秒调用此方法以获得最大时间线程池将等待线程关闭。 |
|
调用此方法来初始化线程池。 |
|
IUnknown::QueryInterface的实现。 |
|
调用此方法使在该池的线程要处理的工作项。 |
|
IUnknown::Release 的实现。 |
|
调用此方法设置线程数。该池的。 |
|
在毫秒调用此方法设置最长时间线程池将等待线程关闭。 |
|
调用此方法关闭线程池。 |
备注
在池中的线程创建和销毁该池时初始化,调整大小或关闭。 选件类 辅助 实例在堆栈中创建每个辅助线程在池。 每个实例为线程的生存期将中。
在线程的创建之后,Worker::Initialize 要对对象与该线程。 在线程的损坏之前,Worker::Terminate 将调用。 两个方法必须接受 void* 参数。 此参数的值传递给线程池 CThreadPool::Initialize的 pvWorkerParam 参数。
当在队列中的工作项,以及辅助线程可用的工作,辅助线程将拉项队列并调用 辅助 对象的 Execute 方法该线程上。 三个项目并传递给方法:从队列中的项目,对于 pvWorkerParam 传递给Worker::Initialize 和Worker::Terminate,并且,对于 重叠 结构的指针为IO完成端口队列改用。
辅助 选件类声明在线程池要排队通过提供typedef项类型,Worker::RequestType。 此类型必须能够转换来回 ULONG_PTR。
辅助 选件类的一个示例是 CNonStatelessWorker选件类。
继承层次结构
IUnknown
CThreadPool
要求
Header: atlutil.h