我有一个整数变量,其中包含要执行的线程数。让我们称之为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));
}

10-07 23:15