在C++中,std::thread
类提供了 join()
方法,用于等待一个线程的执行完成。
当一个线程调用 join()
方法时,它会被阻塞直到被调用的线程执行完成。这样可以保证在主线程中,在子线程执行完毕之前不会结束主线程的执行。
示例代码如下:
#include <iostream>
#include <thread>
void threadFunction() {
std::this_thread::sleep_for(std::chrono::seconds(1));
std::cout << "Thread function executed" << std::endl;
}
int main() {
std::thread t(threadFunction);
// 主线程等待子线程执行完毕
t.join();
std::cout << "Main thread executed" << std::endl;
return 0;
}
在上面的示例中,主线程创建了一个子线程并调用 join()
方法等待子线程执行完毕。只有当子线程执行完毕后,主线程才会继续执行。