线程池是一种线程使用模式。
线程过多会带来调度开销,进而影响缓存的局部性和整体性能;而线程池维护着多个线程,等待着管理者分配可并发执行的任务,避免了在处理短时间任务时创建与销毁线程的代价;线程池不仅能够保证内核的充分利用,还能防止过分调度。可用线程数量应该取决于可用的并发处理器、处理器内核、内存、网络sockets等的数量。
class Task{
public:
int base;
public:
Task(){
}
Task(int _b):base(_b){
}
void Run(){
cout << "Thread id [" << pthread_self() << "]" << "task run ... done: base #" << base << " pow is #" << pow(base, 2) << endl;
}
~Task(){
}
}