jni 线程函数调用技巧-native thread exited without detaching

来源:互联网 发布:windows 启动程序 编辑:程序博客网 时间:2024/06/10 00:30

#include <pthread.h>
JavaVM *gJvm = NULL;pthread_attr_t attr;
pthread_t openPlayerPid;
void Init(JNIEnv *env){
   // 初始化分离线程
   pthread_attr_init(&attr);   pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
   // 取JVM
   (*env)->GetJavaVM(env, &gJvm);
}
// 启动线程
void createThread(){
   pthread_create(&openPlayerPid, &attr, openPlayerThread, NULL);
}
// 线程函数
void* openPlayerThread(void* args){    isOpenPlay = 1;    short *output_buffer;    JNIEnv *env;    (*gJvm)->AttachCurrentThread(gJvm, &env, NULL);
    while(isPlaying){
    }
  //线程退出代码  (*gJvm)->DetachCurrentThread(gJvm);
}
0 0
原创粉丝点击