关于多线程的优先级问题怎么理解“并非线程的优先级越高就一定会执行,哪个线程先执行将有CPU的调度决定”这
关于多线程的优先级问题
怎么理解“并非线程的优先级越高就一定会执行,哪个线程先执行将有CPU的调度决定”这句话?
那要是哪个线程先执行将有CPU的调度决定,那干嘛还得设置一个优先级啊??
[最优解释]
假设只有两条线程
线程1的优先级为 8
线程2的优先级为 2
cpu是循环执行的。你想像成下面这样
while(true){
cpu执行线程1的概率为80% 执行线程2的概率为20%
}
优先级高低 ,只是被执行的概率高低。 并非高优先级的 就一定会比低优先级的先执行。
[其他解释]
优先级设置是一个“建议”,建议操作系统或CPU会处理,但系统怎么调度线程,还是系统自己的事,绝大部分时候,不需要使用这个方法
就想System.gc一样,只是提示jvm可以回收垃圾了,但jvm理不理你就不一定了
[其他解释]
更正:“会处理”-> 给更多的执行机会给指定的线程
