C++ 带for循环的线程
我想创建一个从0到4的for循环,但我的问题是我只知道如何像这样每次启动一个线程C++ 带for循环的线程,c++,multithreading,C++,Multithreading,我想创建一个从0到4的for循环,但我的问题是我只知道如何像这样每次启动一个线程 thread t1(eat,"hello"); thread t2(eat,"hello"); 因此,我的问题是如何在循环中一次启动多个线程?您可以执行以下操作,将它们构建在向量1中: std::向量ts; 对于(int i=5;i>0;--i) 放回(吃,“你好”); 1预先存储的内存(假设您知道有多少)也可以很好。您可以执行以下操作,只需将它们构建在矢量1中: std::向量ts; 对于(int i=5;
thread t1(eat,"hello");
thread t2(eat,"hello");
因此,我的问题是如何在循环中一次启动多个线程?您可以执行以下操作,将它们构建在向量1中:
std::向量ts;
对于(int i=5;i>0;--i)
放回(吃,“你好”);
1预先存储的内存(假设您知道有多少)也可以很好。您可以执行以下操作,只需将它们构建在矢量1中:
std::向量ts;
对于(int i=5;i>0;--i)
放回(吃,“你好”);
1预先存储的内存(假设您知道有多少)也可以很好。在动态范围内使用
new
关键字实例化std::thread
。或者,在循环外声明一个数组。你能给我举个例子吗,please@StoryTeller-detach
并不能解决如何创建多个线程的困惑。它的目的是创建具有无限生存期的线程,只有当这是设计目标时才适用。请注意,已接受的答案(您的答案)不会执行join
或detach
,这在回答这个问题时是合适的。@PeteBecker-我将上述内容作为一个注释(以及更好的答案)发布,正是因为我不确定OP的最终目标。我只是觉得如果我一点也不提的话,那就是我的失职。感谢您的评论:)使用new
关键字在动态范围内实例化std::thread
。或者,在循环外声明一个数组。你能给我举个例子吗,please@StoryTeller-detach
并不能解决如何创建多个线程的困惑。它的目的是创建具有无限生存期的线程,只有当这是设计目标时才适用。请注意,已接受的答案(您的答案)不会执行join
或detach
,这在回答这个问题时是合适的。@PeteBecker-我将上述内容作为一个注释(以及更好的答案)发布,正是因为我不确定OP的最终目标。我只是觉得如果我一点也不提的话,那就是我的失职。感谢您的评论:)
std::vector<std::thread> ts;
for (int i = 5; i > 0; --i)
ts.emplace_back(eat, "hello");