分离的std :: thread在终止后是否需要删除?

Stu*_*rth 5 c++ multithreading c++11 stdthread

我创建一个newstd :: thread对象,然后detach()它.线程运行任意一段时间,然后自行终止.由于我创建了对象new,我是否需要delete在某个时候释放它的资源?或者线程delete在终止时是否有效?

如果它本身有效delete,如果我delete在它终止后明确它会发生什么坏事吗?

son*_*yao 6

是的,你必须delete自己做.

一旦调用了std :: thread :: detach,线程将与线程对象分离并允许执行独立继续,然后线程对象将不再拥有任何线程.所以线程delete在终止时不会也不可能.