我最近开始探索C ++ 11线程。我正在使用eclipse进行示例程序。 Eclipse控制台中的输出让我感到困惑。
当我让分离的线程等待一秒钟时,我看不到控制台中分离线程的输出。
如果我没有让分离的线程等待,控制台输出似乎是正确的。
#include<iostream>
#include<thread>
#include<chrono>
using std::cout;
using std::endl;
using std::thread;
void hello(){
std::this_thread::sleep_for(std::chrono::seconds(5));
cout << "hello from hello!" << endl;
}
int main(){
thread(hello).detach();
cout << "hello from main" << endl;
return 0;
}
控制台输出: 主要来自
如果按照hello方法,输出似乎没问题。
void hello(){
//std::this_thread::sleep_for(std::chrono::seconds(1));
cout << "\nhello from method!" << endl;
}
控制台输出: 来自main的你好 你好,方法!
有人可以帮我理解这里发生的事情吗?