我有一个整数变量,其中包含要执行的线程数。让我们称之为myThreadVar
。我想执行myThreadVar
线程,并且如果没有大量的if
语句,想不出任何办法。无论myThreadVar
是什么,有什么方法可以创建myThreadVar
线程?
我刚在想:for (int i = 0; i < myThreadVar; ++i) { std::thread t_i(myFunc); }
,但这显然行不通。
提前致谢!
最佳答案
创建一个线程数组或 vector ,将线程放入,然后如果要等待它们完成,请进行第二次循环遍历您的集合并将它们全部加入:
std::vector<std::thread> myThreads;
myThreads.reserve(myThreadVar);
for (int i = 0; i < myThreadVar; ++i)
{
myThreads.push_back(std::thread(myFunc));
}