首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当我们在不同的命令提示中发出java命令时,会创建多少个JVM实例?

当我们在不同的命令提示中发出java命令时,会创建多少个JVM实例?
EN

Stack Overflow用户
提问于 2014-03-06 09:11:03
回答 2查看 3.7K关注 0票数 6

请告诉我,当我们在不同的命令中发出以下命令时,会创建多少个jvm实例?

代码语言:javascript
代码运行次数:0
运行
复制
- command 1: c:\java -Xms32m -Xmx512m -Xss254k AccountSalary
- command 2: d:\java -Xms32m -Xmx512m -Xss254k AccountSalary
- command 3: c:\java -Xms32m -Xmx512m -Xss254k AccountSalary

它们是使用保存jvm堆大小,还是对每个java进程使用不同的堆大小?

EN

回答 2

Stack Overflow用户

发布于 2014-03-06 09:20:08

每次运行java命令时,都会创建一个新的JVM实例。(每个JVM实例都是一个不同的进程。)

因此,在您的示例中,JVM实例的数量将为3个。

JVM实例不共享堆。每个人都会有自己的一堆。通过创建多个堆没有节省堆空间。(实际上,您可能通过创建多个JVM来使用更多的堆空间.与在同一个JVM中使用多线程运行应用程序的3个实例相比。)

堆大小是独立的。它们是由各个JVM的命令行选项确定的。

对于大多数JVM,JVM实例之间唯一共享的内存是包含JVM代码的只读段,以及(可能的)共享本机库。

从历史上看,在JVM中,编译的Java代码可以在JVM之间共享。然而,这是复杂的,并且(AFAIK)当前一代JVM不支持这一点。

票数 6
EN

Stack Overflow用户

发布于 2014-03-06 09:21:39

每个进程都在自己的JVM中运行。而且堆空间不在JVM之间共享。此外,在您的情况下,您有3个不同的过程。所以,他们在自己的JVM中运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22219766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档