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

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

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

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

图片说明

  • 写回答

9条回答 默认 最新

  • zshzsh1994 2018-01-05 03:27
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • liu_wendong 2018-01-05 06:03
    关注

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

    评论
  • 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实例之间也互不影响,你干掉其中一个程序并不影响另外一个的正常运行

    评论
  • 乐古 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
    关注
    评论
查看更多回答(8条)

报告相同问题?

悬赏问题

  • ¥15 I350 Gigabit Network
  • ¥15 关于#abap#的问题,请各位专家解答!
  • ¥20 内网通过公网访问外网问题
  • ¥20 谁有这个东西 继续教育的
  • ¥15 怎么使请求通过cors
  • ¥15 WDM 驱动ACPI 相关疑问
  • ¥15 prism 跨窗体共享数据绑定 wpf
  • ¥15 hdl designer突然用不了系统的moduleware组件,请问有人遇到或者怎么解决吗?
  • ¥15 0基础计算机毕设,应该从哪开始?
  • ¥60 使用DKT40脑图划分ROI区域