JAVA学习线程优先级

 如果线程没有没有明确优先级的话,系统会默认分配给了一个5的优先级。优先级:从1~10,其他的都是不合法的,优先级越高,代表这个线程先被调用的概率越高,优先级为10的线程,不一定比优先级为5的线程先执行,只是比他先执行的概率高

常用方法:

       setPriority(int )设置优先级,填数字1~10之间;或者用系统自带的

Thread.NORM_PRIORITY(5),Thread.MIN_PRIORITY(1),Thread.MAX_PRIORITY(10)

        getPriority() 获取该线程的优先级


总结:1、线程优先级高的不一定先执行,只是概率高

           2、先设置优先级,在start()

附一个代码

        

public class Demo11 {
    public static void main(String[] args) {
        Test test = new Test();
        Thread thread = new Thread(test);
        Thread thread1 = new Thread(test);
        Thread thread2 = new Thread(test);
        thread2.setPriority(Thread.MIN_PRIORITY);
        thread2.start();
        thread.setPriority(Thread.NORM_PRIORITY);
        thread.start();
        thread1.setPriority(Thread.MAX_PRIORITY);
        thread1.start();
    }
}
class Test implements Runnable{

    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName()+"的优先级为"+Thread.currentThread().getPriority());
    }
}

上一篇:RabbitMQ 优先级队列


下一篇:关于queue(原文链接:https://blog.csdn.net/chao_xun/article/details/8037438)