JVM的生命周期——JVM之二

一、首先分析两个概念 

JVM实例和JVM执行引擎实例

1JVM实例对应了一个独立运行的java程序——进程级别

  一个运行时的Java虚拟机(JVM)负责运行一个Java程序。

  当启动一个Java程序时,一个虚拟机实例诞生;当程序关闭退出,这个虚拟机实例也就随之消亡。

  如果在同一台计算机上同时运行多个Java程序,将得到多个Java虚拟机实例,每个Java程序都运行于它自己的Java虚拟机实例中。

2JVM执行引擎实例则对应了属于运行程序的线程——线程级别

二、JVM的生命周期

    1JVM实例的诞生

            当启动一个Java程序时,一个JVM实例就产生了,任何一个拥有public static void main(String[] args)函数的class都可以作为JVM实例运行的起点 

    2JVM实例的运行

         main()作为该程序初始线程的起点,任何其他线程均由该线程启动。JVM内部有两种线程:守护线程和非守护线程,main()属于非守护线程,守护线程通常由JVM自己使用,java程序也可以标明自己创建的线程是守护线程。   http://www.cnblogs.com/super-d2/p/3348183.html

    3JVM实例的消亡

      当程序中的所有非守护线程都终止时,JVM才退出;若安全管理器允许,程序也可以使用java.lang.Runtime类或者java.lang.System.exit()来退出。

原文地址:https://www.cnblogs.com/muffe/p/3541175.html