这个问题涉及到 Java JVM 的基础知识。如果我有一个 Java 独立程序,并且在服务器上有 5 个此程序的进程正在运行,那么我们可以说这 5 个 Java 进程在 5 个 JVM 中运行吗?
这里的进程指的是 Linux 进程。如果我执行 ps -ef |grep java
命令,就会看到 5 个 Java 进程出现。
这个问题涉及到 Java JVM 的基础知识。如果我有一个 Java 独立程序,并且在服务器上有 5 个此程序的进程正在运行,那么我们可以说这 5 个 Java 进程在 5 个 JVM 中运行吗?
这里的进程指的是 Linux 进程。如果我执行 ps -ef |grep java
命令,就会看到 5 个 Java 进程出现。
是的,没错。每个java
进程都有一个JVM。
jps
命令(如果它不在您的路径中,则从JDK的bin文件夹中运行)来查找正在计算机上运行的Java进程(JVMs)。jps
命令非常有用。通常它被用来查找Java进程的进程ID,可以将其传递给诸如VisualVM(使用jvisualvm
命令调用)或jhat
实用程序之类的应用程序以进行堆转储。 - CruiZen这取决于JVM和本地库。您可能会在ps
中看到带有不同PID的JVM线程。一般来说,子进程的父进程将是作为线程的Java进程。
不能确定Linux java进程的数量等于实例化的JVM数量。
ps
输出如何,你都可以确定地说(进程数 确实等于 JVM 数),毫无疑问。 - Matthew Flaschen