一个模板线程池
一个模板线程池,没有使用信号灯,互斥体等同步对象。
主要思路是初始化一个管理线程,管理线程通过消息协调任务链表和工作线程之间如何更好的工作,消息通信使用PostThreadMessage。
下面是模板线程池源代码
下面介绍如何使用这个模板线程池
1.任务类和模板实例化线程池类的定义及其实现
实现代码很简单,下面是线程池任务处理过程
2. 在对话框中实例化这个线程池类,并使用
a.添加头文件,本例中是
b.实例化这个线程池类,本例中是添加到类成员变量中
c.初始化线程池对象
注:默认是初始化10个工作线程,你也可以在有空闲线程的时候调用SetThreadNum设置工作线程个数.
d.添加任务到线程池对象中
在VC6.0中可能会有内存泄露(大小:工作线程个数*sizeof(任务类)),在VS2008SP1中测试没有内存泄露.
需要在各个VS版本测试,请修改模板线程池的析构函数的_MSC_VER宏为对应的VS版本即可.