JVM和Java进程

3
这可能是有关Java JVM的非常基本的查询。如果我使用bash脚本启动了2个单独的程序,则会运行2个进程,并且可以使用ps -ef命令查看这些进程。
这是否意味着它们作为2个单独的JVM运行?我有这个疑问,因为我可以看到两个进程的父进程ID(PPID)相同。
2个回答

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

是的。'java'命令启动了一个JVM。


那么,PPID 告诉我们什么呢?难道相同的 PPID 不意味着这两个进程是同一个进程的一部分吗? - ASD
PPID是父进程ID的缩写。这意味着两个进程有相同的父进程,即解释你的脚本的shell。(顺便说一句:“作为一个进程的一部分的进程”没有任何意义) - a guest

1
是的,两者都是作为本地操作系统进程运行的完全独立的JVM。这包括垃圾回收器、JIT编译器和所有其他通常的内容。
每个操作系统进程都有一个父进程,如果没有其他东西,那么它就是在操作系统启动时首先启动的“init”进程。
顺便说一下,Java命令行工具,特别是jcmd非常适合在您的计算机上探索java/jvm进程 - 例如,您可以只输入jcmd来列出所有进程;输入jcmd help来检查特定进程的可用命令列表。
htop是另一个探索进程层次结构的好工具。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接