Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 带for循环的线程_C++_Multithreading - Fatal编程技术网

C++ 带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;

我想创建一个从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;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");