C ++ 11中的boost :: thread_group?

时间:2012-03-27 17:05:09

标签: c++ boost c++11 boost-thread

C ++ 11中是否有类似boost::thread_group的内容?

我只是试图将我的程序从使用boost:thread移植到C ++ 11线程,并且无法找到任何等效的东西。

2 个答案:

答案 0 :(得分:27)

不,在C ++ 11中没有直接等同于boost::thread_group的东西。如果你想要的只是一个容器,你可以使用std::vector<std::thread>。然后,您可以使用新的for语法或std::for_each在每个元素上调用join(),或者其他任何内容。

答案 1 :(得分:7)

thread_group没有进入C ++ 11和C ++ 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();
  }