如何在JNI中创建线程?
有没有Java环境函数调用?或者我应该使用c ++线程?
我相信我应该使用pthread作为普通的c ++应用程序,但是这些创建线程会调用一些java回调,也许是同步方法。
答案 0 :(得分:3)
本机线程和JNI没有什么特别之处。仍然有很多事情可能出错。
在调用任何Java方法之前,本机线程必须是attached
到JVM。对此非常重要的API函数是:
jint AttachCurrentThread(JavaVM *vm, void **p_env, void *thr_args);
jint DetachCurrentThread(JavaVM *vm);
有关更多信息,请参阅here。
所有其他内容如synchronized
由JVM处理。