• 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即可。

  • 相关阅读:
    java学习笔记(4)多态
    scala学习笔记(1)
    java复习(3)继承下
    java复习(3)继承
    java复习(2)
    java中常见的异常种类
    数组的内存结构
    Castle ActiveRecord学习(一)简介
    OAuth2.0 Owin 授权问题
    将对象转为json,加入到HttpResponseMessage中
  • 原文地址:https://www.cnblogs.com/devilwind/p/6865726.html
Copyright © 2020-2023  润新知