线程优先级

Java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行。
线程的优先级用数据表示,范围从1~10
Thread.MIN_PRIORITY = 1;
Thread.MAX_PRIORITY = 10;
Thread.NORM_PRIORITY = 5;
使用以下方式改变或获取优先级
getPriority()  setPriority(int xx)
优先级低只是意味着获得调度的概率低,并不是优先级低就不会被调用了,这都是看CPU的调度。
package com.haohao.test;

/**
 * @author zhh
 * @description 测试线程的优先级
 * @date 2020/9/16
 */
public class TestPriority {


    public static void main(String[] args) {
        MyPriority priority = new MyPriority();
        Thread thread0 = new Thread(priority, "thread0");
        Thread thread1 = new Thread(priority, "thread1");
        Thread thread2 = new Thread(priority, "thread2");
        Thread thread3 = new Thread(priority, "thread3");
        Thread thread4 = new Thread(priority, "thread4");
        thread0.start();

        // 一定要先设置优先级,然后再启动start()
        thread1.setPriority(1);// 设置优先级
        thread1.start();

        thread2.setPriority(4);// 设置优先级
        thread2.start();

        thread3.setPriority(Thread.MAX_PRIORITY);// 设置优先级为最大
        thread3.start();

        thread4.start();
        // 主线程的优先级
        System.out.println(Thread.currentThread().getName() + "的优先级--->" + Thread.currentThread().getPriority());
    }

    static class MyPriority implements Runnable {
        @Override
        public void run() {
            // 子线程的优先级
            System.out.println(Thread.currentThread().getName() + "的优先级" + Thread.currentThread().getPriority());
        }
    }
}

输出结果:

main的优先级--->5
thread0的优先级5
thread3的优先级10
thread4的优先级5
thread2的优先级4
thread1的优先级1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦想天涯~路在脚下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值