线程优先级

本文介绍了Java线程优先级的概念,包括默认优先级、设置方法以及注意事项。线程优先级范围从1到10,其中5为默认优先级。线程调度器根据优先级决定执行顺序,但低优先级线程仍有可能被调度执行。示例代码展示了如何创建并设置不同优先级的线程,并启动它们进行执行。

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();
    }
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值