线程优先级

线程优先级

弱肉强食在什么时代都适用,不要当绵羊,要当老虎

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

  • 线程的优先级用数字来表示

    ​ Thread.MIN_PRIORITY=1;

    ​ Thread.MAX_PRIORITY=10;

    ​ Thread.NORM_PRIORITY=5; // 默认优先级

  • 使用一下方式获取或改变优先级

    ​ getPriority() setPriority(int xxx)

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

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

实现下来感觉Priority没啥用呢

package com.example.multi_thread;

public class TestPriority {
}

class MyPriority implements Runnable {

    public static void main(String[] args) {
        System.out.println(Thread.currentThread().getName() + "-->" + Thread.currentThread().getPriority());

        MyPriority myPriority = new MyPriority();
        Thread t0 = new Thread(myPriority);
        Thread t1 = new Thread(myPriority);
        Thread t2 = new Thread(myPriority);
        Thread t3 = new Thread(myPriority);
        Thread t4 = new Thread(myPriority);
        Thread t5 = new Thread(myPriority);

        t0.setPriority(4);


        t2.setPriority(Thread.MIN_PRIORITY);


        t3.setPriority(Thread.MAX_PRIORITY);


        t4.setPriority(Thread.MIN_PRIORITY);


        t5.setPriority(5);

        t0.start();

        t1.start();

        t2.start();
        
        t3.start();

        t4.start();

        t5.start();


    }

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

结果

main-->5
Thread-0-->4
Thread-1-->5
Thread-2-->1
Thread-5-->5
Thread-3-->10
Thread-4-->1
posted @ 2021-11-12 11:47  Oh,mydream!  阅读(24)  评论(0编辑  收藏  举报