在C++ 11中有沒有類似boost::thread_group
?boost :: thread_group在C++ 11中?
我只是試圖將我的程序從使用boost:thread
移植到C++ 11線程,並且無法找到任何等效的東西。
在C++ 11中有沒有類似boost::thread_group
?boost :: thread_group在C++ 11中?
我只是試圖將我的程序從使用boost:thread
移植到C++ 11線程,並且無法找到任何等效的東西。
不,沒有什麼東西直接等同於C++ 11中的boost::thread_group
。如果你想要的只是一個容器,你可以使用std::vector<std::thread>
。然後,您可以使用新的for
語法或std::for_each
在每個元素上調用join()
,或其他任何元素。
自2012年以來,這個問題有更好的解決方案嗎? – pyCthon 2013-08-31 20:58:08
我想補充一點,'boost :: thread_group'實際上沒有任何魔力,它比線程向量(「join_all」和「create_thread」之類的一些實用函數「稍多一些」)稍微多一點。 – 2016-01-17 13:45:48
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();
}
升壓線程和C++ 11級的線程是不同的。我個人繼續使用boost線程,因爲更完整的API(以及缺乏當前實現的線程本地存儲)。 – 2012-03-27 17:07:28