Windows下一个比较完美的线程池实现和示例
本线程池提供了如下功能:
1.能根据任务个数和当前线程的多少在最小/最大线程个数之间自动调整(Vista后的系统有 SetThreadpoolThreadMaximum 等函数有类似功能);
2.能方便的对任一任务进行取消操作,无论该任务是等待运行状态还是正在运行状态都支持(相比较而言,WaitForThreadpoolWorkCallbacks 函数只能取消尚未运行的任务);
3.能对整个线程池进行安全的暂停、继续、停止处理
4.支持回调方式的反馈通知
5.使用模版方式实现,能方便的进行参数传递
6.在加入任务时可以设置优先级(目前尚不支持动态调整)
7.使用的是微软的基本API,能支持WinXP、Vista、Win7等各种操作系统(CreateThreadpoolWork 等只能在Vista后才能使用)
详细说明参见本人博客
1