多线程java:JVM是否更改了线程优先级(隐式)
当我们创建new Thread(Runnable target)
时,它将具有与父线程相同的优先级。
我的问题是,JVM在任何情况下都可以更改优先级吗?
我没有使用setPriority(int)方法
你可以在下面搜索框中键入要查询的问题!
当我们创建new Thread(Runnable target)
时,它将具有与父线程相同的优先级。
我的问题是,JVM在任何情况下都可以更改优先级吗?
我没有使用setPriority(int)方法
# 1 楼答案
不会的。只需补充一点,在幕后,它的操作系统或系统对在其核心上运行的线程有最终的调用,因此,它自己的调度算法最终才是重要的
然而,JVM将线程呈现给操作系统,在这里,优先级再次根据JVM调度算法发挥作用,但由操作系统决定
# 2 楼答案
我看不到对此有任何明确的保证,但这不是那种被授予明确保证的事情
优先级有一个getter和setter,其含义是除非有人再次调用setter,否则值不会改变
但请注意,这并不意味着系统的任何部分都不允许在“您的”线程上调用^{,只是
Thread
类本身没有内部的欺骗# 3 楼答案
如果您询问线程调度程序是否有根据优先级调度线程,答案是否
它可以选择这样做(抢占式调度),但由平台决定使用哪种调度算法
一些阅读资料:
http://www.javatpoint.com/priority-of-a-thread
setPriority() method doesn't work properly