当所有非守护程序线程死亡时,程序终止(守护程序线程是标有的线程
setDaemon(true);通常用于实用程序线程)。从javadoc:
Java虚拟机启动时,通常只有一个非守护程序线程(通常调用某些指定类的名为main的方法)。Java虚拟机将继续执行线程,直到发生以下任何一种情况:
- 已调用类Runtime的退出方法,并且安全管理器已允许进行退出操作。
- 不是守护程序线程的所有线程都已死,要么通过从调用返回到run方法,要么抛出异常传播到run方法之外。

当所有非守护程序线程死亡时,程序终止(守护程序线程是标有的线程
setDaemon(true);通常用于实用程序线程)。从javadoc:
Java虚拟机启动时,通常只有一个非守护程序线程(通常调用某些指定类的名为main的方法)。Java虚拟机将继续执行线程,直到发生以下任何一种情况:
- 已调用类Runtime的退出方法,并且安全管理器已允许进行退出操作。
- 不是守护程序线程的所有线程都已死,要么通过从调用返回到run方法,要么抛出异常传播到run方法之外。