线程优先级

线程优先级

  • Java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行
  • 线程的优先级用数字表示,范围从1~10
    • Thread.MIN_PRIORITY = 1;
    • Thread.MAX_PRIORITY = 10;
    • Thread.NORM_PRIORITY = 5;
  • 使用以下方式改变或获取优先级
    • getPriority().setPriority(int xxx)

优先级的设定建议在start()调度前

优先级低只是意味着获得调度的概率低,这并不代表优先级低就不会被调用。这都看CPU的调度

//测试线程优先级
public class TestPriority implements Runnable{
    public static void main(String[] args) {
        //先输出主线程优先级
        System.out.println(Thread.currentThread().getName()+"--->"+Thread.currentThread().getPriority());
        Thread thread1 = new Thread(new TestPriority());
        Thread thread2 = new Thread(new TestPriority());
        Thread thread3 = new Thread(new TestPriority());
        Thread thread4 = new Thread(new TestPriority());

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

        thread2.setPriority(Thread.MAX_PRIORITY);
        thread2.start();

        thread3.setPriority(1);
        thread3.start();

        thread4.setPriority(8);
        thread4.start();

    }

    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName()+"--->"+Thread.currentThread().getPriority());
    }
}

posted @   NeverGGp  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示