Я работаю с библиотекой Boost threads в C++, и я хочу создать разные потоки для обработки некоторых ведер данных. Во-первых, я загружаю данные в более мелкие ведра (по 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?
Я не понимаю, очень ну ваш псевдокод: почему вы очищаете 'pool2' _incondition_ в конце цикла? что делает 'proc'? – didierc