线程优先级

线程调度器按照优先级决定应该调度哪个线程来执行,优先级高的只是获得调度的概率增加了,不一定每次都调度优先级高的

线程的优先级用数字来表示,范围是(1~10)
  1. Thread.MIN_PRIORITY=1;
  2. Thread.MAX_PRIORITY=10;
  3. 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());
    }
}

image

posted @ 2024-04-09 13:10  纲炮  阅读(31)  评论(0)    收藏  举报