Подтвердить что ты не робот

Boost:: thread_group в С++ 11?

Есть ли что-то вроде boost::thread_group в С++ 11?

Я просто пытаюсь перенести мою программу с использования boost:thread на С++ 11 потоков и не смог найти что-либо эквивалентное.

4b9b3361

Ответ 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();
  }