java - 如果我使用 JNI 从 C 的多个线程调用 java 函数会怎样?

标签 java c java-native-interface pthreads

此链接似乎表明“它只是有效”:(在 7.3 附加 native 线程下的底部相当远)http://java.sun.com/docs/books/jni/html/invoke.html

我不明白这怎么可能,嵌入式 JVM 会自动启动自己的线程吗?或者排队 JNI 调用?否则怎么可能多次调用同一个虚拟机。我没有指示执行任何线程?

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

最佳答案

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

关于java - 如果我使用 JNI 从 C 的多个线程调用 java 函数会怎样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8654519/

相关文章:

java - 将二进制文件复制到 jar 之外

java-native-interface - WebSphere App Server native_stderr.log 正在快速更新并且变得过大

java - Java 中的 Polygon.Double 在哪里?

Java,对象和方法的优化调用

c - doxygen --- 将 .c 和 .h doc 合并为相同的文件?

c - C:如何阅读网页

c - for循环中的数组,C99

java hid 通信 dll 使 jvm 崩溃

java - Camera2 api 将相机切换为正常和黑白

java - 使用自定义 TimestampExtractor 的 Kafka Streams 窗口