java - 为什么 JVM 不等待用户应用程序生成的守护线程?

标签 java multithreading jvm

如果最后一个非守护线程完成,虚拟机将终止。” 我的问题是,应用程序生成的守护线程会发生什么情况?为什么 JVM 不等待它们完成?

最佳答案

守护线程的全部目的是,如果它是唯一运行的线程,则它不会使 JVM 保持 Activity 状态; 这是设计使然。您可能希望这样做的原因有很多。

例如,对于 Swing 应用程序,用户可能在后台守护线程(而不是在事件调度线程上)调用了长时间运行的任务。在任务完成之前,用户尝试退出应用程序。在这个阶段,应用程序开发人员可能已经决定最好立即关闭应用程序,而不是将关闭尝试延迟到长时间运行的计算完成,因此他们决定分配计算线程守护进程状态。

关于java - 为什么 JVM 不等待用户应用程序生成的守护线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7709706/

相关文章:

java - JMS ActiveMQ 队列已经存在

c# - 基于 bool 值的线程阻塞

java - YGC(ParNew)实时时间远高于user+sys时间

java - opencyc 2.0 启动服务器时出错

java - 线程池通信

java - java中的对象堆总是没有足够的空间

java - Eclipse Standard 还是面向 Java 开发人员的 Eclipse IDE?

java - 如何获取Hbase中给定行键一部分的所有行

java - 在 Eclipse 中将 JavaScript 项目与 Java 项目链接起来

python - 让我的代码处理需要很长时间才能完成的后台函数调用