zoukankan      html  css  js  c++  java
  • JAVA多线程创建与退出过程

    • Java多个线程,什么时候被创建,什么时候退出?
    • java程序的入口是什么?
    • java主线程main结束后,是否程序就结束了?C中的(windows,linux)main函数执行完,整个进程结束,其子线程也被强制结束退出。这个是C/C++与java很大的不同。C/C++,通常需要主线程主动等待子线程完成再退出。而java不需要在main函数中显式等待子线程(非Daemon线程)退出,而是自动创建DestroyJavaVM线程来管理。

    JAVA线程分为2类

    Daemon线程(守护线程)和User线程(用户线程)

     Daemon线程,是启动前可以通过setDaemon(true)来指定线程为Daemon线程

    JAVA虚拟机启动程序步骤:

    (1) Main是启动时候的主线程,即程序入口

    (2) 在main函数结束后,虚拟机会自动启动一个DestroyJavaVM线程,该线程会等待所有user thread 线程结束后退出(即,只剩下daemon 线程和DestroyJavaVM线程自己,整个虚拟机就退出,此时daemon线程被终止),因此,如果不希望程序退出,只要创建一个非daemon的子线程,让线程不停的sleep即可。

  • 相关阅读:
    [CQOI2015]选数
    [AHOI2009]中国象棋
    [ZJOI2012]灾难
    [NOI2018]屠龙勇士
    [APIO2016]划艇
    [ZJOI2011]礼物
    cent 7 识别exfat
    C语言风格的 for 循环(SHELL的循环写法 已验证20200517)
    系统安装时间
    单用户模式修改root密码
  • 原文地址:https://www.cnblogs.com/devilwind/p/6865726.html
Copyright © 2011-2022 走看看