1.含义
java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行,默认都是5。
2. 默认优先级
线程的优先级用数字表示,范围从1-10
Thread.Min_PRIORITY=1; |
Thread.Max_PRIORITY=10; |
Thread.NORM_PRIORITY=5; |
3.使用方法
getPriority() |
setPriority(int xxx) |
优先级的设定建议在start()调度前 |
4.注意
优先级低只是意味着获得调度的概率低,并不是优先级低就不会被调用了,这都是看cpu调度。
5.测试
package com.Thread;
public class ThreadPriority implements Runnable{
@Override
public void run() {
//获取线程名字和线程优先级
System.out.println(Thread.currentThread().getName()+"->"+Thread.currentThread().getPriority());
}
public static void main(String[] args) {
//主线程默认优先级 为5
System.out.println(Thread.currentThread().getName()+"->"+Thread.currentThread().getPriority());
//创建子线程
ThreadPriority priority=new ThreadPriority();
Thread t1= new Thread(priority);
Thread t2= new Thread(priority);
Thread t3= new Thread(priority);
Thread t4= new Thread(priority);
//启动
t1.start();//默认优先级为5
t2.setPriority(1);
t2.start();
t3.setPriority(4);
t3.start();
t4.setPriority(Thread.MAX_PRIORITY);//最大优先级10
t4.start();
}
}