进程和多个jvm

wol*_*084 1 c++ java java-native-interface

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

我创建了一个C++ DLL程序,通过JNI调用我的java jar文件.然后我在其他C++程序中调用此C++ DLL.据我所知,在我称之为dll的任何特定程序中,只允许一个jvm.在我的项目,一个C++程序调用开头的dll一次,节目的最后,和DLL将创建JVM时,DLL被称为第一次和附加线程JVM时,它被称为第二次.

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

谢谢!

小智 5

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

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

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