JVM与javalinux进程
这个问题可能是关于Java JVM的基本问题。如果我有一个Java独立程序,例如,如果这个程序的5个进程在服务器中的某个特定时间运行,我们能说这5个Java进程在5个JVM中运行吗JVM与javalinux进程,java,linux,multithreading,jvm,Java,Linux,Multithreading,Jvm,这个问题可能是关于Java JVM的基本问题。如果我有一个Java独立程序,例如,如果这个程序的5个进程在服务器中的某个特定时间运行,我们能说这5个Java进程在5个JVM中运行吗 这里的进程是指Linux进程。如果我执行ps-ef | grep java,我将看到5个java进程出现。是的,这是正确的。每个java进程有一个JVM。取决于JVM和本机lib。您可能会看到JVM线程在ps中显示不同的PID。一般来说,子PID将具有与线程相同的java进程的父PID 你不能确定Linux java
这里的进程是指Linux进程。如果我执行ps-ef | grep java,我将看到5个java进程出现。是的,这是正确的。每个
java
进程有一个JVM。取决于JVM和本机lib。您可能会看到JVM线程在ps
中显示不同的PID。一般来说,子PID将具有与线程相同的java进程的父PID
你不能确定Linux java进程的#是否等于实例化JVM的#。你可以运行
jps
命令(从JDK的bin文件夹中,如果它不在你的路径中)来找出哪些java进程(JVM)正在您的机器上运行。在正常的Linux设置中,我们可以说#的java进程数等于#的JVM数吗?如您的问题中所述。对于每个进程尝试多个JVM,有可能的解决方案。例如,在Linux上,JVM使用真正的本机线程,这与进程类似。然而,它们不是一回事,因为只有一个进程有自己的地址空间。我想你可以肯定地说(进程计数等于JVM计数),而不管ps
输出。@Gnanam:你会发现jps
命令在另一种情况下很有用。它通常用于查找java进程的进程id,该id可以传递给VisualVM(使用jvisualvm
comamnd调用)或jhat
实用程序之类的探查器,以进行堆转储。再次感谢您让我知道另一个堆分析工具的存在。显示所有JVM