使用async和future在linux上抛出异常(gcc 4.8.4)

时间:2015-07-09 08:47:31

标签: multithreading c++11 g++

我有一段简单的代码,它不应该抛出异常。 包含所有适当的头文件,程序构建没有错误。代码如下。执行result1.get()时发生异常; 有些人可以告诉我我做错了什么吗? 提前感谢您的帮助。

int func1 ()
{
    return 0;
}

int main()
{
    future<int> result1(async(func1));
    int result = result1.get();
    return 0;
}

运行程序的结果给了我:

terminate called after throwing an instance of 'std::system_error'
what():  Unknown error -1

1 个答案:

答案 0 :(得分:2)

-pthread添加到编译器标志中。不确定细节,但由于某种原因gcc 4.8给出Unknown error -1如果这被遗漏了(但是,至少恕我直言,它应该警告你没有启用线程或给出一些链接错误而不是编译并投入运行时间。)