Есть ли что-то вроде boost::thread_group в С++ 11?
Я просто пытаюсь перенести мою программу с использования boost:thread на С++ 11 потоков и не смог найти что-либо эквивалентное.
Ответ 1
Нет, нет ничего, что эквивалентно boost::thread_group в С++ 11. Вы можете использовать std::vector<std::thread>, если все, что вам нужно, это контейнер. Затем вы можете использовать либо новый синтаксис for, либо std::for_each для вызова join() для каждого элемента или что-то еще.
Ответ 2
thread_group не попал в стандарты С++ 11 и С++ 14.
Но обходной путь прост:
std::vector<std::thread> grp;
// to create threads
grp.emplace_back(functor); // pass in the argument of std::thread()
void join_all() {
for (auto& thread : grp)
if (thread.joinable())
thread.join();
}