该程序以段故障结束。为什么?
#include <thread>
void f(){}
int main(){
while(true){
std::thread t(f);
t.join();
}
}
环境:winxp + mingw + gcc4.8
答案 0 :(得分:1)
程序不应该导致任何资源问题,因为在每个循环结束时,线程完成执行并且线程对象被破坏。
我在使用VS 2013 Update 3编译的Win 7 64位上运行了稍微修改过的代码。当我输入此答案时,计数器达到了超过880,000而没有任何错误。因此,问题可能出在您的环境中。
#include <thread>
#include <iostream>
void f(){}
int main(){
int i = 0;
while (true){
std::thread t(f);
t.join();
std::cout << ++i << std::endl;
}
}