在C++中,可以使用线程的join()函数来实现主线程等待其他线程完成的功能。join()函数会阻塞主线程,直到被调用的线程执行完成。
具体步骤如下:
下面是一个示例代码:
#include <iostream>
#include <thread>
#include <vector>
void task(int id) {
// 模拟线程执行任务
std::this_thread::sleep_for(std::chrono::seconds(2));
std::cout << "Thread " << id << " completed." << std::endl;
}
int main() {
std::vector<std::thread> threads;
int numThreads = 5;
// 创建并启动线程
for (int i = 0; i < numThreads; ++i) {
threads.push_back(std::thread(task, i));
}
// 等待每个线程完成
for (auto& thread : threads) {
thread.join();
}
std::cout << "All threads completed. Continue with main thread." << std::endl;
return 0;
}
在上述示例中,我们创建了5个线程,并使用join()函数等待每个线程完成。每个线程执行任务时,会休眠2秒钟来模拟任务的执行时间。当所有线程都执行完成后,主线程会输出"All threads completed. Continue with main thread."。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云