我有两个线程:主线程和从主线程生成的线程。
当主线程退出时,整个程序会终止吗?
没有。
当所有非守护程序线程完成时,Java程序终止。
该文档指出:
Java虚拟机启动时,通常只有一个非守护程序线程(通常调用某些指定类的名为main的方法)。Java虚拟机将继续执行线程,直到发生以下任何一种情况: exit类的方法Runtime已被调用,安全管理器已允许进行退出操作。 不是守护程序线程的所有线程都已死亡,要么通过从调用返回到run方法,要么通过抛出传播到run方法之外的异常而终止。
Java虚拟机启动时,通常只有一个非守护程序线程(通常调用某些指定类的名为main的方法)。Java虚拟机将继续执行线程,直到发生以下任何一种情况:
exit
Runtime
run
如果您不希望运行时等待线程,请调用setDaemon方法。
setDaemon