gpt4 book ai didi

java - 每个应用程序如何创建 JVM 实例?

转载 作者:行者123 更新时间:2023-12-01 14:31:49 25 4
gpt4 key购买 nike

我知道每个 java 进程都在自己的 JVM 中运行。例如,当我在我的机器上运行 jcmd 时,我看到了

21730 sun.tools.jcmd.JCmd
77558 /usr/local/opt/jenkins-lts/libexec/jenkins.war --httpListenAddress=127.0.0.1 --httpPort=8080
99974
99983 org.jetbrains.jps.cmdline.Launcher /Applications/IntelliJ IDEA.app/Contents/lib/asm-all-7.0.1.jar:/Applications/IntelliJ IDEA.app/Contents/lib/lz4-java-1.6.0.jar:/Applications/IntelliJ IDEA.app/Contents/plugins/java/lib/aether-connector-basic-1.1.0.jar:/Applications/IntelliJ IDEA.app/Contents/plugins/java/lib/plexus-utils-3.0.22.jar:/Applications/IntelliJ IDEA.app/Contents/plugins/java/lib/aether-api-1.1.0.jar:/Applications/IntelliJ IDEA.app/Contents/plugins/java/lib/javac2.jar:/Applications/IntelliJ IDEA.app/Contents/lib/util.jar:/Applications/IntelliJ IDEA.app/Contents/lib/platform-api.jar:/Applications/IntelliJ IDEA.app/Contents/lib/qdox-2.0-M10.jar:/Applications/IntelliJ IDEA.app/Contents/lib/jna.jar:/Applications/IntelliJ IDEA.app/Contents/lib/trove4j.jar:/Applications/IntelliJ IDEA.app/Contents/lib/nanoxml-2.2.3.jar:/Applications/IntelliJ IDEA.app/Contents/lib/jdom.jar:/Applications/IntelliJ IDEA.app/Contents/lib/netty-common-4.1.41.Final.jar:/Applications/IntelliJ IDEA.app/Contents/plugins/java/lib/aet

如何为每个应用创建 JVM?就像我使用 java -jar jenkins.war 启动 jenkins 时发生的情况。某些进程是否从 JRE 文件夹复制 JVM 内容并初始化 JVM 实例?

最佳答案

当你启动一个像java这样的程序时,操作系统会创建一个“进程”。进程是实时运行程序的表示。进程概念允许您同时运行一个程序的多个副本。每个进程都有自己的私有(private)内存空间和系统资源,如打开的文件或网络连接。每个进程都可以加载一组不同的动态链接库。对于 Java,许多 jvm 是在共享库中实现的,启动程序“java”在运行时加载。

细节取决于操作系统,并且会很快变得复杂。

进程启动时发生的事情之一是可执行文件被映射到内存中。 CPU 无法执行磁盘或其他外部存储器上的指令,因此必须先将程序“文本”从磁盘复制到主存中。将文件映射到内存可以简化这一过程并提高效率:如果 CPU 需要访问实际上不在 RAM 中的内存位置,内存管理器单元 (MMU) 会发出“页面错误”。页错误导致数据被加载到 RAM 中。这比简单地将程序文本复制到 RAM 中更有效(如果不是所有文本都一直需要的话会怎么样)并且还简化了整个系统(其他操作系统功能已经需要虚拟内存系统)

关于java - 每个应用程序如何创建 JVM 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62747553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com