“如果最后一个非守护线程完成,虚拟机将终止。” 我的问题是,应用程序生成的守护线程会发生什么情况?为什么 JVM 不等待它们完成?
最佳答案
守护线程的全部目的是,如果它是唯一运行的线程,则它不会使 JVM 保持 Activity 状态; 这是设计使然。您可能希望这样做的原因有很多。
例如,对于 Swing 应用程序,用户可能在后台守护线程(而不是在事件调度线程上)调用了长时间运行的任务。在任务完成之前,用户尝试退出应用程序。在这个阶段,应用程序开发人员可能已经决定最好立即关闭应用程序,而不是将关闭尝试延迟到长时间运行的计算完成,因此他们决定分配计算线程守护进程状态。
关于java - 为什么 JVM 不等待用户应用程序生成的守护线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7709706/