java :线程优先级是否被 JVM 更改(隐式地)

java : Is Thread priority changed by JVM(implicitly)

当我们创建 new Thread(Runnable target) 时,它将根据父线程具有一些优先级。 我的问题是,JVM 在任何情况下都可以更改优先级吗? 我没有使用 setPriority(int) 方法。

如果你问线程调度器是否有根据优先级调度线程,答案是没有

它可以选择这样做(抢占式调度),但由平台决定使用哪种调度算法。

一些读物:

没有。它不会。只是补充一下,在引擎盖下,它的 OS 或系统最终调用了哪些线程 运行 在它的核心上,因此,它自己的调度算法最终很重要。

然而,JVM 将线程提供给 OS,这里优先级基于 JVM 调度算法再次发挥作用,但它的 OS 决定。

我没有看到对此有任何明确的保证,但它不是那种被授予明确保证的东西。

优先级有getter和setter,意思是除非有人再次调用setter,否则该值不会改变。

但请注意,这并不意味着系统的任何部分都不允许在 "your" 线程上调用 setPriority(),只是 Thread 中没有内部欺骗class 本身。