JNI线程创建

时间:2013-11-22 12:16:42

标签: java multithreading native

如何在JNI中创建线程?

有没有Java环境函数调用?或者我应该使用c ++线程?

我相信我应该使用pthread作为普通的c ++应用程序,但是这些创建线程会调用一些java回调,也许是同步方法。

1 个答案:

答案 0 :(得分:3)

本机线程和JNI没有什么特别之处。仍然有很多事情可能出错。

在调用任何Java方法之前,本机线程必须是attached到JVM。对此非常重要的API函数是:

jint AttachCurrentThread(JavaVM *vm, void **p_env, void *thr_args);
jint DetachCurrentThread(JavaVM *vm);

有关更多信息,请参阅here

所有其他内容如synchronized由JVM处理。