作为一个懒鬼,肯定是使用最简单的方式来使用线程池。VS的MFC类库中有个CThreadPool的类给我们提供了一个线程池,可惜不跨平台。于是就另外找了个
http://threadpool.sourceforge.net/
#include <boost/thread.hpp>
#include <boost/threadpool.hpp>
void first_task()
{
...
}
void second_task()
{
..
}
pool tp(2);
// Add some tasks to the pool.
tp.schedule(&first_task);
tp.schedule(&second_task);
// Wait until all tasks are finished.
tp.wait();
当然。要使用还必须去http://threadpool.sourceforge.net/ 下载源码。把头文件和threadpool 文件夹拷贝到boost目录下就一切搞定了。