概述
线程的优先级
Java提供了一个线程调度器来监控程序启动后进去就绪状态的所有线程。线程调度器通过线程的优先级来决定调度哪些线程执行。
线程的优先级用数字表示:范围是1-10
- Thread.NORM_PRIORITY=5:线程默认的优先级
- Thread.MAX_PRIORITY=10:线程可以拥有的最大优先级
- Thread.MIN_PRIORITY=1:线程可以拥有的最小优先级
/**
* @Description:线程的优先级
* @version 1.0
* @since JDK1.8
* @author Li-Ying
* @date 2020年4月17日 下午7:13:12
*/
/*线程优先级:1-10
* 1.NORM_PRIORITY:分配给现成的默认优先级:5
* 2.MAX_PRIORITY:线程可以拥有的最大优先级:10
* 3.MIN_PRIORITY:线程可以拥有的最小优先级:1
* 代表概率,不代表绝对的先后顺序
*/
public class Priority {
public static void main(String[] args) {
// System.out.println(Thread.NORM_PRIORITY);
// System.out.println(Thread.MAX_PRIORITY);
// System.out.println(Thread.MIN_PRIORITY);
// System.out.println(Thread.currentThread().getPriority());
MyPriority myPriority=new MyPriority();
Thread t1=new Thread(myPriority);
Thread t2=new Thread(myPriority);
Thread t3=new Thread(myPriority);
Thread t4=new Thread(myPriority);
Thread t5=new Thread(myPriority);
Thread t6=new Thread(myPriority);
//设置线程的优先级必须要在线程启动之前
t1.setPriority(2);
t2.setPriority(3);
t3.setPriority(4);
t4.setPriority(5);
t5.setPriority(6);
t6.setPriority(1);
//开启多线程
t1.start();
t2.start();
t3.start();
t4.start();
t5.start();
t6.start();
}
}
class MyPriority implements Runnable{
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println(Thread.currentThread().getName()+" : "+Thread.currentThread().getPriority());
//Thread.yield();
}
}
注:线程优先级的设定建议在线程开启之前
线程的优先级高,只是获取时间片的概率大,并不代表着,优先级高的一定先执行,优先级低的后执行(运行结果如图)
最后
以上就是体贴香菇为你收集整理的多线程(二)-线程的优先级的全部内容,希望文章能够帮你解决多线程(二)-线程的优先级所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复