我正在使用C ++中的Boost线程库,我想创建不同的线程来处理一些数据桶。首先,我将数据加载到较小的桶中(每个100个元素)并将每个桶分配给一个线程。可用的线程是四个,所以我避免在释放新线程之前创建新线程。伪代码如下:
while(pool1->has_next()){
int tmp = pool->get_next();
pool2->pushback(tmp);
if(pool2->size()%100==0){
while(working_threads>=4){
wait();
}
new thread (proc(pool2));
}
pool2->clear();
}
如何使用Boost线程完成此操作?
答案 0 :(得分:1)
听起来你想要的是一个线程池或线程组,我在github上有一个例子:
git@github.com:cdesjardins / JobBatcher.git