繁体   English   中英

分离线程执行结束

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM