这可能是一个微不足道的问题,我只想确认我对流程和多个jvm的理解。
我创建了一个C++ dll程序,通过JNI调用我的java文件。然后,我在其他C++程序中调用这个C++ dll。据我所知,在我称为dll的任何特定程序中,只允许一个jvm。在我的项目中,C++程序在程序开始和结束时调用dll一次,当第一次调用dll时,dll将创建jvm,并在第二次调用时将线程附加到jvm。
我的问题是,我将有许多不同的C++程序调用这个dll,所以它应该创建多个jvm?这是每个进程创建一个jvm,对吗?还是他们仍然被认为是线程?
谢谢!
发布于 2014-09-04 14:25:41
调用Java的C/C++程序将创建每个进程一个JVM (当您调用JNI_CreateJavaVM()时)并连接到它。
如果您有几个C/C++程序的实例(进程)正在运行,那么在这种情况下,每个实例都会创建一个JVM。
创建的每个JVM都是一个进程,而不是一个线程。
https://stackoverflow.com/questions/25667778
复制相似问题