datadev_sh
2018-01-05 02:58
采纳率: 100%
浏览 5.0k
已采纳

java进程之间以及跟JVM是什么关系

1、命令启动了两个java程序,它们之间是什么关系;

2、java程序又和JVM之间是什么关系,它们是公用一个JVM,还是每个java程序,都有一个JVM。
图片说明

图片说明

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

9条回答 默认 最新

  • zshzsh1994 2018-01-05 03:27
    已采纳
    已采纳该答案
    打赏 评论
  • YouthWillFade 2018-01-05 03:29

    1.程序的运行是以进程在内存中的运行形式体现的。当你启动一个程序时,系统会调用其对应进程进入内存运行,图中进程的pid即为进程的唯一标识符。然后进程之间是并发执行的。准确的说,你启动的是java程序,但系统运行的是进程,因为程序是静态的,进程才是动态的,也就是程序并不会进入内存运行,而是其对应进程进入内存运行。
    2.是公用一个JVM的,这个就类似你电脑自己的操作系统,打开两个程序肯定是在同一个系统内存中运行的,原因就是我问题一中说的进程是并发执行的。
    望采纳,谢谢。

    打赏 评论
  • sg1020 2018-01-05 03:39

    命令行启动的java程序是共用一个jvm的,启动一个程序就是在jvm中开启一个进程,每个进程至少有一个线程,当然可以有多个线程,
    线程之间通信比较简单,就像java书上讲的一样,但进程间的通信复杂点,如管道、内存映射、内存共享、消息队列、socket等,你可以简单理解为两个进程间没关系

    打赏 评论
  • wb_snail 2018-01-05 04:32

    一个java程序对应一个进程,一个jvm实例,进程之间互不干涉,jvm实例之间也互不影响,你干掉其中一个程序并不影响另外一个的正常运行

    打赏 评论
  • liu_wendong 2018-01-05 06:03

    2个进程肯定是2个jvm实例,我们jps调优的时间jps的pid对应的是一个实例的id,并且我们后面分析jvm都是在某一个pid下进行分析这个虚拟机实例。
    2个pid肯定对应的两个jvm,要不我们平时监控一个pid如何能分析出来是程序的哪块出问题呢(能找到问题,jvm的信息都是在这个pid下的情况),连个
    进程要是在一个jvm下,岂不是很乱看不出问题么、

    打赏 评论
  • 乐古 2018-01-05 08:02

    进程与进程之间是互不干扰的,可以并行的,一个程序(不管是什么程序)占用一个进程,但可以占用多个线程,jvm是用来将.class文件解释成二进制并让计算机能够识别的,要说联系的话,就是jvm运行解释.class文件之后会形成进程

    打赏 评论
  • weixin_37817510 2018-01-05 11:31

    只有一个jvm,jvm就是虚拟机,用来运行编译程序的

    打赏 评论
  • 獬麟 2018-01-05 13:58

    一个java程序对应一个进程,进程和jvm实例之间互不影响

    打赏 评论
  • 张小二丶 2018-01-08 04:32
    打赏 评论

相关推荐 更多相似问题