用于分离线程C ++ 11的Eclipse控制台输出

时间:2018-03-01 06:34:49

标签: c++ eclipse multithreading c++11

我最近开始探索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的你好 你好,方法!

有人可以帮我理解这里发生的事情吗?

0 个答案:

没有答案