如果我使用JNI从C中的多个线程调用java函数会发生什么?

时间:2011-12-28 10:15:45

标签: java c java-native-interface pthreads

这个链接似乎暗示“它只是工作”:(在7.3附加原生线程的底部相当远)http://java.sun.com/docs/books/jni/html/invoke.html

我不知道这是怎么可能的,嵌入式JVM会自动启动自己的线程吗?或者排队JNI电话?如何能够多次调用同一个虚拟机。我没有指示做任何线程?

我能想象的任何工作方式是,如果java代码只是在与c代码相同的调用线程中执行。那是对的吗?这意味着我不必在Java中进行任何线程化。

2 个答案:

答案 0 :(得分:4)

jvm不必创建自己的线程,方法调用在构成它们的本机线程上执行。 AttachCurrentThread和DetachCurrentThread将处理任何必要的jvm内部状态管理,例如创建包装本机线程的java Thread对象。

答案 1 :(得分:0)

JVM启动它需要运行的自己的线程。您可以通过启动JVM来触发此线程创建。