为什么这个简单的线程示例会出现运行时错误?

时间:2013-10-23 22:27:49

标签: c++ multithreading gcc c++11

#include <iostream>
#include <thread>

int main()
{
    std::thread th([] { std::cout << "Hello, World\n"; });
    th.join();
}

这就是我所拥有的,它会导致运行时错误。这是为什么?我正在使用GCC 4.8(Ideone)。

1 个答案:

答案 0 :(得分:1)

ideone的错误是:

  

在抛出'std :: system_error'实例后终止调用    what():启用多线程以使用std :: thread:不允许操作

这意味着您需要使用@Praetorian已经建议的-pthread进行编译。

代码在Visual Studio 2012中运行良好。