这可能是关于javajvm的一个非常基本的查询。如果我使用bash脚本启动了两个独立的程序,那么两个进程正在运行,并且我可以看到使用ps-ef命令的进程。这是否意味着它们作为两个独立的jvm运行?我有这个查询,因为我可以看到两个进程的父进程id(ppid)是相同的。
hl0ma9xz1#
Does that mean they are running as 2 separate JVM's?
对。“java”命令启动jvm。
0x6upsns2#
是的,它们都是两个完全独立的jvm,作为本机os进程运行。这包括垃圾收集器、jit编译器和所有其他常见的东西。每个操作系统进程都有一个父进程,如果没有其他父进程,那么当操作系统启动时,首先启动的就是“init”进程。顺便说一句,java命令行工具 jcmd 非常适合在您的机器上探索java/jvm进程—例如,您只需键入 jcmd 把它们全部列出来;类型 jcmd <PID> help 检查特定进程的可用命令列表。 htop 是探索流程层次结构的另一个好工具。
jcmd
jcmd <PID> help
htop
2条答案
按热度按时间hl0ma9xz1#
对。“java”命令启动jvm。
0x6upsns2#
是的,它们都是两个完全独立的jvm,作为本机os进程运行。这包括垃圾收集器、jit编译器和所有其他常见的东西。
每个操作系统进程都有一个父进程,如果没有其他父进程,那么当操作系统启动时,首先启动的就是“init”进程。
顺便说一句,java命令行工具
jcmd
非常适合在您的机器上探索java/jvm进程—例如,您只需键入jcmd
把它们全部列出来;类型jcmd <PID> help
检查特定进程的可用命令列表。htop
是探索流程层次结构的另一个好工具。