JAVA多线程04-基础篇-优先级

发布时间:2019-11-19 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了JAVA多线程04-基础篇-优先级脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

一、线程优先级

线程优先级的范围是1~10,默认优先级是5,线程优先级的主要作用是让调度器优先调度高优先级线程,但这不意味着低优先级线程得不到执行,通常情况不需要修改线程优先级,Thread类中有3个优先级的常量:

二、源码分析

public final void setPriority(int newPriority) {       ThreadGroup g;//线程所属的线程组       checkAccess();       //设置的级别不能大于10且不能小于1       if (newPriority > MAX_PRIORITY || newPriority < MIN_PRIORITY) {             throw new IllegalargumentException();       }       if((g = getThreadGroup()) != null) {             //设置的级别不能大于所属线程组的最大级别             if (newPriority > g.getMaxPriority()) {                 newPriority = g.getMaxPriority();             }           setPriority0(priority = newPriority);//本地方法       } }

三、线程优先级示例

public class ThreadPrioritiesDemo extends Thread {       private int priority;       public ThreadPrioritiesDemo(String name, int priority) {             super(name);             this.priority = priority;       }     public static void main(String[] args) {           Thread t1 = new ThreadPrioritiesDemo("thread1", 1);           Thread t2 = new ThreadPrioritiesDemo("thread2", 10);           t1.start();           t2.start();     }     @H_51_126@@Override     public void run() {             Thread.currentThread().setPriority(priority);                     for (int i = 0; i < 1000; i++) {                         System.out.println(this + ":" + i);                          if (i % 2 == 0)                               Thread.yield();                       }           } }

输出结果(截取部分):

Thread[thread1,1,main]:670 Thread[thread2,10,main]:293 Thread[thread2,10,main]:294 Thread[thread1,1,main]:671 Thread[thread1,1,main]:672 Thread[thread2,10,main]:295 Thread[thread2,10,main]:296 Thread[thread1,1,main]:673 Thread[thread1,1,main]:674 Thread[thread2,10,main]:297 Thread[thread2,10,main]:298 Thread[thread1,1,main]:675 Thread[thread1,1,main]:676 Thread[thread2,10,main]:299

3.1、结果说明

新开启2个线程,线程1优先级为1,线程2优先级为10,两个线程交替执行,高优先级线程(t2)并不是一直优先于t1执行

四、总结

高优先级线程并不是一直优于低优先级线程执行

欢迎加入学习交流群569772982,大家一起学习交流。

脚本宝典总结

以上是脚本宝典为你收集整理的JAVA多线程04-基础篇-优先级全部内容,希望文章能够帮你解决JAVA多线程04-基础篇-优先级所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。