考虑以下短程序:
#include <thread>
int Foo() {
while (1);
}
int main(){
std::thread t(Foo);
std::thread s(Foo);
// (std::thread(Foo));
t.join();
}
这编译并运行(永远),与
g++ -Wl,--no-as-needed DoubleBufferTest.cc -o DoubleBufferTest -std=c++0x -pthread
在注释掉的行中,我正在尝试使用此处描述的技术来匿名声明一个新线程。但是,当该行被重新注释时,我可以编译但运行会出现以下错误:
terminate called without an active exception
Aborted (core dumped)
我怎样才能正确地匿名声明一个线程?
注意,我在g++ 4.4.7
。