Java线程优先级

线程调度模型
分时调度模型 和 抢占式调度模型

分时调度模型
所有线程轮流使用CPU的使用权,平均分配每个线程占用CPU的时间片

抢占式调度模型
优先让优先级高的线程使用CPU, 如果下线程优先级相同,那么会随机选择一个.

Java使用的式 抢占式调度模型

代码示例

public class ThreadPriority extends Thread { 
    @Override
    public void run() { 
        for (int i = 0; i < 100; i++) { 
            System.out.println(getName() + ":" + i);
        }
    }
}
public static void main(String[] args) { 
        ThreadPriority tp1=new ThreadPriority();
        ThreadPriority tp2=new ThreadPriority();
        ThreadPriority tp3=new ThreadPriority();

        tp1.setName("飞机");
        tp2.setName("高铁");
        tp3.setName("汽车");

        //获取线程的优先级
        System.out.println(tp1.getPriority());
        System.out.println(tp2.getPriority());
        System.out.println(tp3.getPriority());

		tp1.start();
		tp2.start();
		tp3.start();
}

设置线程有优先级

   	//设置线程的优先级
        tp1.setPriority(10);
        tp2.setPriority(5);
        tp1.setPriority(1);

线程默认优先级是5
线程优先级的范围是1~10

线程优先级高仅仅表示线程获取的CPU时间几率高,但是要在次数比较多才能看到理想的效果

    原文作者:稻田里展望者
    原文地址: https://blog.csdn.net/weixin_46441425/article/details/123038695
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞