我正在使用 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线程如何做到这一点?