线程的优先级 Priority

Java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行。

线程的优先级用数字表示,范围从1~10.
Thread.MIN_PRIORITY = 1;
Thread.MAX_PRIORITY = 10;
Thread.NORM_PRIORITY = 5;

- 线程优先级高的,不一定先执行,是由CPU调度的,只是执行权重大了
- 优先级低只是意味着获得调度的概率低.并不是优先级低就不会被调用了.这都是看CPU的调度
- 记住一句话:线程只受CPU调度

使用以下方式改变或获取优先级:
getPriority()
setPriority(int xxx)

注意:先设置优先级再启动!!!

package com.kuang.thread;

/**
 * @ClassName TestPriority
 * @Description 线程优先级
 * @Author 麻虾
 * @Date 2021/5/9 10:59 59
 * @Version 1.0
 */

public class TestPriority {

    public static void main(String[] args) {
        //主线程默认优先级 一般都是5
        System.out.println(Thread.currentThread().getName() + "----->" + Thread.currentThread().getPriority());

        MyPriority myPriority = new MyPriority();
        //创建6个线程对象
        Thread thread1 = new Thread(myPriority);
        Thread thread2 = new Thread(myPriority);
        Thread thread3 = new Thread(myPriority);
        Thread thread4 = new Thread(myPriority);
        Thread thread5 = new Thread(myPriority);
        Thread thread6 = new Thread(myPriority);

        //先设置优先级再启动!!!
        thread1.start();

        thread2.setPriority(1);
        thread2.start();

        thread3.setPriority(4);
        thread3.start();

//        thread4.setPriority(-1); //由源码可知,报错
//        thread4.start();
//        thread6.setPriority(11);
//        thread6.start();

        thread5.setPriority(Thread.MAX_PRIORITY);//MAX_PRIORITY = 10  最高级
        thread5.start();



    }
}

class MyPriority implements Runnable{

    @Override
    public void run() {
        //输出线程优先级
        System.out.println(Thread.currentThread().getName() + "----->" + Thread.currentThread().getPriority());
    }
}

运行结果

main----->5
Thread-0----->5
Thread-1----->1
Thread-2----->4
Thread-4----->10
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

无霸哥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值