在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()
方法等待子線程執行完畢。只有當子線程執行完畢后,主線程才會繼續執行。