0

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

4

1 回答 1

1

听起来你想要的是一个线程池或线程组,我在 github 上有一个例子:

git@github.com:cdesjardins/JobBatcher.git

于 2013-05-19T07:49:42.463 回答