从 thread 对象分离执行的线程,允许执行独立地持续。一旦线程退出,则释放所有分配的资源。就是两个线程彼此相互独立)
调用 detach
后, *this 不再占有任何线程。
#include <iostream> #include <chrono> #include <thread> void independentThread) { std::cout << "Starting concurrent thread. "; std::this_thread::sleep_forstd::chrono::seconds2)); std::cout << "Exiting concurrent thread. "; } void threadCaller) { std::cout << "Starting thread caller. "; std::thread tindependentThread); t.detach); //分离,主线程和子线程彼此独立进行:不会出现join)的那种等待子线程结束再执行主线程;也不会出现什么都不操作,主线程结束后杀掉子线程,报abort的错误. //可被 joinable 的 thread 对象必须在他们销毁之前被主线程 join 或者将其设置为 detached,不然会报abort错误. std::this_thread::sleep_forstd::chrono::seconds1)); std::cout << "Exiting thread caller. "; } int main) { threadCaller); std::this_thread::sleep_forstd::chrono::seconds5)); }
新战场:https://blog.csdn.net/Stephen___Qin