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