java-native-interface - 是否从 JNI 调用派生新进程

标签 java-native-interface

我正在尝试使用 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/

相关文章:

android - 在android NDK jni中加密和解密utf8字符串

java - -Djava.library.path 是否适用于 UNIX JVM?

java - Android (ART) 崩溃并出现错误 JNI DETECTED ERROR IN APPLICATION : jarray is an invalid stack indirect reference table or invalid reference

android - 在android中使用JNI检索持久数据

java - 在 C (JNI) 中结束 Java 线程

java - 从 native 函数(c++、jni)返回一个 int 会使应用程序崩溃

java - 将 C++ 项目导出到 Android - JNI/JavaCPP/Visualgdb

multithreading - 调用 DetachCurrentThread 后崩溃

java - 如何在 JNI 中访问 jobject 的值

java - 如何从 Java 替换 cocos2d-x 场景?