一个 Java 程序运行在 JVM 上;此时这个有程序运行的 JVM 是当前系统的一个进程;而此时 Java 程序是 JVM 上的一个进程,这样理解对吗
1
a510431599 Dec 25, 2018 JVM 是一份本地化的程序,本质上是可执行的文件,是静态的概念。程序运行起来成为进程,是动态的概念。
java 程序是跑在 JVM 上的,严格来讲,是跑在 JVM 实例上的,一个 JVM 实例其实就是 JVM 跑起来的进程,二者合起来称之为一个 JAVA 进程。 各个 JVM 实例之间是相互隔离的 |
2
qwertty01 Dec 25, 2018
|
3
neoblackcap Dec 25, 2018
JVM 的进程实现直接使用系统进程,线程也是。你的程序是在被 JVM 解释或者 jit 后执行,你所谓的程序是执行的内容,不存在你的程序另外在一个进程跑,是 JVM 在跑你的程序,没有 JVM,你的程序无从谈起。
|
5
plp OP @neoblackcap 是不是 JVM 只是一个媒介,解释后 Java 程序还是相当于运行在系统进程里;然后 JVM+JAVA 程序是就组成了当前系统进程
|
6
neoblackcap Dec 25, 2018 @Vtwoguest 你这样理解,大体没有错,是 JVM 加你写的 Class 文件组成了你的程序,JVM 就是你程序的运行时,runtime。这些概念你应该去看一些基础的书补一下。
|
7
plp OP @neoblackcap 好的,谢谢
|
8
qwertty01 Dec 25, 2018 @Vtwoguest 唉,我看了也都不行。
真正用法应该是去谷歌 出来第一个是这个 https://blog.csdn.net/ghj1976/article/details/5481038 还有这个 https://www.ibm.com/developerworks/cn/java/j-lo-processthread/index.html |