我创建了一个new
std :: thread对象,然后detach()
。线程运行任意一段时间,然后自行终止。由于我使用new
创建了对象,我是否需要delete
在某个时刻释放它的资源?或者线程在终止时是否有效delete
?
如果它本身有效delete
,那么如果我在终止后明确delete
它会发生什么不好的事情吗?
答案 0 :(得分:6)
是的,你必须自己delete
。
一旦调用std::thread::detach,线程将与线程对象分离并允许执行独立继续,然后线程对象将不再拥有任何线程。所以线程在终止时不会也不可能delete
。
答案 1 :(得分:1)