JVM 和 Java 进程

JVM and Java Process

这可能是关于 Java JVM 的非常基本的查询。如果我使用 bash 脚本启动了 2 个单独的程序,则 2 个进程是 运行 并且我可以使用 ps -ef 命令查看进程。

这是否意味着它们 运行 作为 2 个独立的 JVM?我有这个查询,因为我可以看到两个进程的父进程 ID (PPID) 相同。

Does that mean they are running as 2 separate JVM's?

是的。 'java' 命令启动 JVM。

是的,两者都是两个完全独立的 JVM 运行 作为本机 OS 进程。这包括垃圾收集器、JIT 编译器和所有其他常用的东西。

每个 OS 进程都有一个父进程,如果没有别的,那么当 OS 启动时首先启动的是“init”进程。

顺便说一句。 Java 命令行工具,特别是 jcmd 非常适合在您的机器上探索 java/jvm 进程 - 例如您只需键入 jcmd 即可列出所有这些;键入 jcmd <PID> help 以检查特定进程的可用命令列表。

htop 是探索流程层次结构的另一个好工具。