zoukankan      html  css  js  c++  java
  • 5.2 java虚拟机的生命周期

    一个运行时的Java虚拟机实例的天职就是:负责运行一个Java程序。当启动一个Java程序时, 一个虚拟机实例也就诞生了。当该程序关闭退出,这个虚拟机实例也就随之消亡。如果在同一 台计算机上同时运行三个Java程序,将得到三个Java虚拟机实例。每个Java程序都运行于它自己 的Java虚拟机实例中。

    Java虚拟机实例通过调用某个初始类的main ()方法来运行一个Java程序。而这个main () 方法必须是公有的(public )、静态的(static),返回值为void,并且接受一个字符串数组作为参数。任何拥有这样一个main ()方法的类都可以作为Java程序运行的起点。

    Java程序初始类中的main ()方法,将作为该程序初始线程的起点,任何其他的线程都是由 这个初始线程启动的。

    在Java虚拟机内部有两种线程:守护线程与非守护线程。守护线程通常是由虚拟机自己使用 的,比如执行垃圾收集任务的线程。但是,Java程序也可以把它创建的任何线程标记为守护线程。 而Java程序中的初始线程——就是开始于main ()的那个,是非守护线程。

    只要还有任何非守护线程在运行,那么这个Java程序也在继续运行(虚拟机仍然存活)。当 该程序中所有的非守护线程都终止时,虚拟机实例将自动退出。假若安全管理器允许,程序本 身也能够通过调用Runtime类或者System类的exit ()方法来退出。

    在前面的Echo程序中,它的main ()方法并未调用其他的线程。因此,当它打印完命令行参 数后,main()方法返回。这就终止了该程序中惟一的非守护线程,最终导致虚拟机实例退出。

  • 相关阅读:
    记一次干扰后处理特效的实现
    Cosine-Weighted采样算法
    PBR技术简介(三):菲涅尔公式
    PBR技术简介(二):Cook-Torrance BRDF
    PBR技术简介(一)
    Python函数的默认参数坑点解析
    屏幕空间环境光屏蔽(SSAO)探秘
    辐射度量学简介(二)
    辐射度量学简介(一)
    解决16bit压缩贴图失真问题
  • 原文地址:https://www.cnblogs.com/mongotea/p/11979252.html
Copyright © 2011-2022 走看看