我正在尝试使用 JNI 从我的 java 程序中调用 C API。有人能告诉我对 C API 的调用是否会在内部 fork 一个新进程吗?...我需要这个,因为我的并发事务会非常庞大,因此如果新进程被 fork ,那么每个事务都会有很多新进程。
最佳答案
使用 JNI 的优点是调用程序和被调用程序都运行在同一个进程(作业)中,而其他方法启动一个新进程(作业)。这使得 JNI 调用在启动时更快并且资源密集型更少。但是,由于 Java 应用程序在技术独立机器接口(interface) (TIMI) 中运行,并且用户 native 方法需要用户地址空间才能运行,因此最初需要一些开销来创建使用 16 字节地址指针而不是 8 字节地址指针的用户环境TIMI 下面使用的指针。它只是意味着您使用 JNI 的原因应该不仅仅是基于性能。
关于java-native-interface - 是否从 JNI 调用派生新进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3706944/