一尘不染

主线程退出时程序终止?

java

我有两个线程:主线程和从主线程生成的线程。

当主线程退出时,整个程序会终止吗?


阅读 174

收藏
2020-09-08

共1个答案

一尘不染

没有。

当所有非守护程序线程完成时,Java程序终止。

文档指出:

Java虚拟机启动时,通常只有一个非守护程序线程(通常调用某些指定类的名为main的方法)。Java虚拟机将继续执行线程,直到发生以下任何一种情况:

  • exit类的方法Runtime已被调用,安全管理器已允许进行退出操作。
  • 不是守护程序线程的所有线程都已死亡,要么通过从调用返回到run方法,要么通过抛出传播到run方法之外的异常而终止。

如果您不希望运行时等待线程,请调用setDaemon方法

2020-09-08