java - 进程和多个jvm

标签 java c++ java-native-interface

这可能是一个微不足道的问题,我只是想确认我对进程和多个 jvm 的理解。

我创建了一个 C++ dll 程序,通过 JNI 调用我的 java jar 文件。然后我在其他 C++ 程序中调用这个 C++ dll。据我所知,在我调用 dll 的任何特定程序中,只允许使用一个 jvm。在我的项目中,一个C++程序在程序的开头和结尾调用了一次dll,第一次调用时dll会创建jvm,第二次调用时会附加一个线程给jvm。

我的问题是我会有很多不同的 C++ 程序调用这个 dll,所以它应该创建多个 jvms?这是每个进程一个 jvm 创建,对吗?或者它们仍然被视为线程?

谢谢!

最佳答案

调用 Java API 的 C/C++ 程序将为每个进程创建一个 JVM(当您调用 JNI_CreateJavaVM() 时)并连接到它。

如果您有多个运行此 C/C++ 程序的实例(进程),那么在这种情况下,将为每个实例创建一个 JVM。

创建的每个 JVM 都是一个进程,而不是一个线程。

关于java - 进程和多个jvm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25667778/

相关文章:

c++ - 帮助 C++ 中的字符输入和打印

java - 如何使用 jvalue 数组将两个整数传递给构造函数?

android - JNI : map jobject to native c++ object

java - 如何显示 ArrayList<Bitmap> 中的图像 (SQLlte)

c++ - 迭代循环中的所有 (i,j) 元素

c++ - void *a = &a 如何合法?

android - 类型无法在 ndk 中解析

启动进程时 Java Android ping IOException "Too many files open"

java - 一年中的编程作业月份

java - 我需要有一系列背景吗?