在Java中有两类线程:用户线程 (User Thread)、守护线程 (Daemon Thread)
一、用户线程:
概念:在Java中开发者创建的线程默认都是用户线程,包括main线程;只要有用户线程还在运行,JVM虚拟机就不会退出,程序继续执行。
由结果可知main线程结束了,用户线程依然在执行,直到用户线程执行结束,程序才会退出
二、守护线程
守护线程:是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程就是一个很称职的守护者;如果所有用户线程都执行结束了,但是守护线程还在执行,程序依然会结束运行,同时杀死所有的守护线程。简单来说就是没有需要被守护的线程,那么守护线程就没必要存在
由结果可知当用户线程main执行结束后,程序就会结束,守护线程虽然已经start(),但会被JVM会杀死。
1、在Daemon线程中产生的新线程也是Daemon的
由结果可知 threadChild 虽然没有显示的指定他是守护线程,但由于他的父亲是守护线程,所以他依然是守护线程