Jon*_*epe 1 c++ multithreading
我想做一个for循环,创建更多的线程.
我尝试过:
int i;
for (i = 0; i < 10; i++) {
thread t1(nThre);
t1.join();
cout << "Joined thread n'" << i << '\n';
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用.nThre顺序调用(这是一个简单的void例程).
我还询问我是否可以使用预增的i只是一个int,所以:
++iinsted的的i++,这应该是更好的性能.
您的问题是您启动一个线程,并在开始下一个线程之前加入它.你应该这样做:
int i;
vector<thread> threads;
for (i = 0; i < 10; i++) {
threads.push_back(thread(nThre));
cout << "Started thread n'" << i << "\n";
}
for (i = 0; i < 10; i++) {
threads[i].join();
cout << "Joined thread n'" << i << "\n";
}
Run Code Online (Sandbox Code Playgroud)
首先,启动所有线程,然后等待它们完成.
对于之间的区别i++和++i,因为i是一个整数,它使这里没有什么区别.有关详细信息,请参阅此答案.
| 归档时间: |
|
| 查看次数: |
5553 次 |
| 最近记录: |