当前位置: 代码迷 >> Eclipse >> 关于多线程的优先级有关问题
  详细解决方案

关于多线程的优先级有关问题

热度:38   发布时间:2016-04-23 02:00:38.0
关于多线程的优先级问题
怎么理解“并非线程的优先级越高就一定会执行,哪个线程先执行将有CPU的调度决定”这句话?
那要是哪个线程先执行将有CPU的调度决定,那干嘛还得设置一个优先级啊??
------最佳解决方案--------------------
假设只有两条线程
线程1的优先级为 8
线程2的优先级为 2

cpu是循环执行的。你想像成下面这样

while(true){
   cpu执行线程1的概率为80%    执行线程2的概率为20%
}
优先级高低 ,只是被执行的概率高低。 并非高优先级的 就一定会比低优先级的先执行。

------其他解决方案--------------------
优先级设置是一个“建议”,建议操作系统或CPU会处理,但系统怎么调度线程,还是系统自己的事,绝大部分时候,不需要使用这个方法

就想System.gc一样,只是提示jvm可以回收垃圾了,但jvm理不理你就不一定了
------其他解决方案--------------------
引用:
优先级设置是一个“建议”,建议操作系统或CPU会处理,但系统怎么调度线程,还是系统自己的事,绝大部分时候,不需要使用这个方法

就想System.gc一样,只是提示jvm可以回收垃圾了,但jvm理不理你就不一定了


更正:“会处理”-> 给更多的执行机会给指定的线程
  相关解决方案