我理解守护程序线程和常规线程之间的区别。通过调用setDaemon(true)
,线程将被标记为不会使JVM保持活动状态。当没有更多的非守护程序线程在运行时,JVM将自动关闭。启动JVM时,只有主线程是非守护程序线程。
我也理解线程的优先级可以独立于此设置。通过调用setPriority(Thread.MAX_PRIORITY)
,线程将被设置为具有其线程组允许的最大调度优先级。我觉得我对这些概念有很好的把握。
我的问题是 - 守护程序线程中有什么固有的东西会降低其优先级吗?或者它只是一个标语“你不必等我关闭JVM”?
我正在使用无法通过API关闭的共享库中的线程。我已经要求将此线程标记为守护程序线程,但是所有者担心这将降低其在调度程序中的优先级。在我看来,由于优先级是与守护程序线程指定分开管理的,因此它们应该是正交的。但是,我很难找到这方面的文档。