C++线程池(Windows)
来源:互联网 发布:免费vpn虚拟专用网络 编辑:程序博客网 时间:2024/05/22 00:21
调用方法
void threadfunc(void *p)
{
YourClass* yourObject = (YourClass*) p;
//...
}
ThreadPool tp;
for(i=0; i<100; i++)
tp.Call(threadfunc);
ThreadPool tp(20);//20为初始线程池规模
tp.Call(threadfunc, lpPara);
使用时注意几点:
1. ThreadJob 没什么用,直接写线程函数吧。
2. 线程函数(threadfunc)的入口参数void* 可以转成自定义的类型对象,这个对象可以记录下线程运行中的数据,并设置线程当前状态,以此与线程进行交互。
3. 线程池有一个EndAndWait函数,用于让线程池中所有计算正常结束。有时线程池中的一个线程可能要运行很长时间,怎么办?可以通过线程函数threadfunc的入口参数对象来处理,比如:
class YourClass {
int cmd; // cmd = 1是上线程停止计算,正常退出。
};
threadfunc(void* p) {
YourClass* yourObject = (YourClass*)p;
while (true) {
// do some calculation
if (yourClass->cmd == 1)
break;
}
}
在主线程中设置yourClass->cmd = 1,该线程就会自然结束。
很简洁通用的线程池实现。
http://blog.csdn.net/revv/archive/2008/11/07/3248424.aspx
- windows C socket 线程池
- 《Windows via C/C++》学习笔记 —— Windows 线程池 (转)
- 《Windows via C/C++》学习笔记 (八) Windows 线程池 纤程
- 《Windows via C/C++》学习笔记(二线程)
- 《Windows via C/C++》学习笔记(三)线程
- Windows via C/C++:线程的执行时间(1)
- C++线程池(Windows)
- Windows通用线程类(C++)
- windows下c创建线程
- 《windows via C++》之windows线程同步
- 《windows via C++》之windows线程同步
- 《windows via C++》之windows线程同步
- windows via c/c++ 学习笔记(三) 线程池
- Mutex线程同步 (C/C++ Windows Platform SDK 实现)
- C语言如何创建线程(windows)系统中
- 《Windows via C/C++》学习笔记 —— Windows 线程池
- Windows Via C/C++:线程概述
- Windows Via C/C++:线程实现细节
- VC程序最小化到托盘
- 判断iframe或脚本对象是否加载完毕的方法(兼容ie和Firefox)
- UML中各种关系说明以及举例
- 交叉编译的概念(关于嵌入式的一点儿知识)
- 关于BindingManagerBase类
- C++线程池(Windows)
- [转载]MYSQL常见出错代码解析
- 专注c++,看题
- sql*plus 常用查询
- java中 string类型转换成UTF-8
- php中的eval和JavaScript中的eval
- SQL Server日期函数集合
- 伤别离
- UML中一些符号的意义