Java应用程序生命周期
典型的Java应用程序何时完成 如果我在Java应用程序生命周期,java,multithreading,lifecycle,main-method,Java,Multithreading,Lifecycle,Main Method,典型的Java应用程序何时完成 如果我在main方法中启动一个新线程,然后main方法完成,但另一个线程继续工作,应用程序将一直运行,直到所有线程都死掉,不是吗 谢谢,圣诞快乐 是的,除非它是一条执事线索。引述自: 当Java虚拟机启动时,通常只有一个非守护进程线程(它通常调用某个指定类中名为main的方法)。Java虚拟机将继续执行线程,直到发生以下任一情况: 类运行时的exit方法已被调用,并且安全管理器已允许执行exit操作 所有不是守护进程线程的线程都已死亡,要么是通过调用run方法返
main
方法中启动一个新线程,然后main
方法完成,但另一个线程继续工作,应用程序将一直运行,直到所有线程都死掉,不是吗
谢谢,圣诞快乐 是的,除非它是一条执事线索。引述自: 当Java虚拟机启动时,通常只有一个非守护进程线程(它通常调用某个指定类中名为main的方法)。Java虚拟机将继续执行线程,直到发生以下任一情况:
- 类运行时的exit方法已被调用,并且安全管理器已允许执行exit操作
- 所有不是守护进程线程的线程都已死亡,要么是通过调用run方法返回,要么是通过抛出传播到run方法之外的异常
我正经历着这种行为,但我想确认一下。你解释得很透彻!谢谢!谢谢顺便说一句,我认为未捕获的异常只会杀死发生它们的线程。默认的未捕获异常处理程序只会终止该线程,只有当它是最后一个非守护进程线程时,才会停止VM。