线程调度器按照优先级决定应该调度哪个线程来执行,优先级高的只是获得调度的概率增加了,不一定每次都调度优先级高的
线程的优先级用数字来表示,范围是(1~10)
- Thread.MIN_PRIORITY=1;
- Thread.MAX_PRIORITY=10;
- Thread.NORM_PRIORITY=5;
使用以下方法来改变或获取优先级
get()priority或set()priority(int a)
优先级的设定建议在start()调度前
package StateThread;
//线程优先级测试类
// 状态线程
public class TestPriority {
// 主函数
public static void main(String[] args) {
// 打印主线程的名称和优先级
System.out.println(Thread.currentThread().getName() +"-->"+Thread.currentThread().getPriority());
// 创建 MyPriortiy 实例
MyPriortiy myPriortiy = new MyPriortiy();
// 创建多个线程并分配相同的 MyPriortiy 实例
Thread t1 = new Thread(myPriortiy);
Thread t2 = new Thread(myPriortiy);
Thread t3 = new Thread(myPriortiy);
Thread t4 = new Thread(myPriortiy);
Thread t5 = new Thread(myPriortiy);
// 启动线程 t1
t1.start();
// 设置并启动线程 t2 的优先级
t2.setPriority(2);
t2.start();
// 设置并启动线程 t3 的优先级为最小优先级
t3.setPriority(Thread.MIN_PRIORITY);
t3.start();
// 设置并启动线程 t4 的优先级为最大优先级
t4.setPriority(Thread.MAX_PRIORITY);
t4.start();
// 设置并启动线程 t5 的优先级为特定值
t5.setPriority(9);
t5.start();
}
}
// 实现 Runnable 接口的 MyPriortiy 类
class MyPriortiy implements Runnable {
// 重写 run 方法
@Override
public void run() {
// 打印当前线程的名称和优先级
System.out.println(Thread.currentThread().getName() +"-->"+Thread.currentThread().getPriority());
}
}
标签:优先级,Thread,start,线程,MyPriortiy,new
From: https://www.cnblogs.com/gang-pao/p/18123745