当我们使用AttachCurrentThread(JavaVM*vm,void*p_env,void*thr_args)方法将CPP线程附加到Java本机接口(JNI)时,从Java虚拟机(JVM)的Angular 来看,C++线程实际上变成了外部线程.
在将Native CPP线程附加到JVM之后,如果我在附加的线程上执行pthREAD_JOIN,或者如果附加的线程在从JVM分离之前突然终止,会出现问题吗?
我所理解的是,当使用AttachCurrentThread将本机线程附加到JVM时,JVM会分配某些资源并维护内部数据 struct ,以管理线程与Java对象的交互. 如果线程在未正确分离的情况下突然终止,则这些资源可能无法释放,并可能导致内存泄漏或其他资源或JVM相关问题.
在上面的代码中,DeattachCurrentThread变得无法访问,而我已经执行了pthreadExit(),这是否会导致任何与内存泄漏相关的问题或任何其他问题?