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
是探索流程层次结构的另一个好工具。
这可能是关于 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
是探索流程层次结构的另一个好工具。