C++连接多个线程
C++ Join multiple threads
我想做一个for循环,它可以创建更多的线程。
我尝试过:
int i;
for (i = 0; i < 10; i++) {
thread t1(nThre);
t1.join();
cout << "Joined thread n'" << i << 'n';
}
但它不起作用。nThre
是按顺序调用的(它是一个简单的void
例程)。
我还问我是否可以使用预增量,因为i
只是int
,所以:++i
而不是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";
}
首先,启动所有线程,然后等待它们完成。
对于i++
和++i
之间的差异,由于i
是整数,因此在这里没有差异。有关详细信息,请参阅此答案。
相关文章:
- 提升 ASIO - io_service 不要等待连接到线程
- 如何在多个线程中创建 QSql数据库连接时防止名称冲突
- 如果两个线程相互依赖,则 cpp 线程连接应使用连接导致死锁
- 视频在唤醒其他线程时输入设备断开连接
- 正在连接的等待条件变量的线程会发生什么情况?
- 如何强制线程轮流连接到字符串?
- 将信号从工作线程类连接到控制器类 - QThreads
- 多个网络连接的线程与异步 I/O
- 什么时候标准::线程::连接会因no_such_process而失败
- C++线程的向量在连接时随机崩溃
- C++线程连接会立即返回或不返回
- 如何将信号从线程连接到插槽
- 线程连接在另一个线程运行时会导致分段错误
- 线程连接问题
- Qt中的C++线程连接
- 线程连接函数阻塞调用线程
- Qt:多线程连接不工作
- 线程连接是如何工作的
- 在已完成的std::线程连接上发生死锁
- 线程连接c++行为