[英]detached thread end of execution
我当前正在创建一个程序,该程序从Java环境(NDK)内调用本地代码。 我有一个将从Java代码中调用几次的函数。 在此函数中,我创建了一个分离线程,该线程将用作计时器来停止本机代码中的特定功能。 代码如下:
void myNativeFunction(){
std::thread timerTrial(&FluidMechanics::Impl::endTrial,this);
timerTrial.detach();
}
void endTrial(){
//code here
return ;
}
问题是,当endTrial返回时,我想知道我的线程是否要终止并且返回时是否释放了所有资源。 实际上,此后不久将再次调用myNativeFunction两次,因此我不想弄乱我的资源和内存。
是。 当分离的线程返回时,任何特定于线程的资源将自动释放。
C ++ 11草案,N3690,§30.3.1.7,10,detach()
用* this表示的线程将继续执行,而不会阻塞调用线程。 当detach()返回时,*这不再表示可能继续执行的线程。 当以前用* this表示的线程结束执行时,实现应释放所有拥有的资源。
(强调我的)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.