2013-11-22 63 views
1

如何在JNI中创建线程?JNI线程创建

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

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

+0

在windows和linux中创建线程略有不同。在哪个环境中工作? – rachana

+0

两个!我使用pthread作为c代码的线程库。 – Victor

回答

3

本地线程和JNI没有什么特别之处。还有很多事情可能会出错。

本地线程必须是attached才能调用任何Java方法。这是这一重要的API函数是:

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

更多相关信息,请参阅here

所有其他的东西,如​​由JVM处理。