abort()has been called问题

abort()has been called问题


c++使用c++11的多线程时,出现在主线程结束时,调用析构函数前报错
abort() has been called

thread t;
t = std::thread(test);
//t.detach();

上面的代码,因为粗心大意,线程对象未调用join和detach方法(但奇怪的是,线程函数仍然运行 ),导致在线程函数运行完成后,主线程结束,未调用析构函数就报错。(网上看了很多abort() has been called 问题,都不是我这个原因QAQ)最后才发现原因,加上被注释的代码,t.detach(),程序ok
最后,写代码一定不能粗心。。。

你可能感兴趣的:(C++初学-跟着C++,primer学习)