我完全了解将线程标记为守护线程对JVM退出的影响(如果所有非守护线程退出,则JVM将退出)。
将线程设置为守护线程是否有其他副作用?
(完全无关,只是语义上的问题,守护线程的含义在这种情况下不是相反的吗:例如,如果我编写自己的HTTP守护进程并启动它运行,我不想让JVM保持活动状态直到该线程存活吗?或者这个术语“守护进程”有其他语义吗?)
我完全了解将线程标记为守护线程对JVM退出的影响(如果所有非守护线程退出,则JVM将退出)。
将线程设置为守护线程是否有其他副作用?
(完全无关,只是语义上的问题,守护线程的含义在这种情况下不是相反的吗:例如,如果我编写自己的HTTP守护进程并启动它运行,我不想让JVM保持活动状态直到该线程存活吗?或者这个术语“守护进程”有其他语义吗?)
守护线程是为其他线程提供服务的线程。它只是对于jvm本身而言才是守护进程,而不是对于外部世界。因此,如果只有守护进程存在,它们就没有更多用处了。如果你想要一个http守护进程,你只需编写一个带有正常线程的http服务器,并使用操作系统的工具集将其作为守护进程调用。
总之,在jvm中,守护线程并不是操作系统中的守护线程。守护线程通常是无限循环,当所有正在运行的仅为等待输入的一些守护进程时,您不希望您的jvm继续无限运行。