Java线程优先级

Posted 巧克力爱王子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java线程优先级相关的知识,希望对你有一定的参考价值。

线程的优先级:

1、Max_PRIORITY :10

2、Min_PRIORITY:1

3、NORM_PRIORITY:5(此为默认优先级)

如何获得和设置当前线程的优先级:

getPriority():获得当前线程的优先级;

setPriority():设置当前线程的优先级。

注意:高优先级的线程要抢占低优先级线程的cpu的执行权,但是只是从概率上讲,高优先级的线程高概率情况下被执行,这并不意味着只有当高优先级的线程执行完后低优先级的线程才执行。

//创建一个类实现Runnable接口
class MyPriority implements Runnable

    //重写run()方法
    @Override
    public void run() 

        System.out.println(Thread.currentThread().getName() + ":重写run()方法");
    


public class ThreadPriority 

    public static void main(String[] args) 
        MyPriority priority = new MyPriority();

        Thread thread = new Thread(priority);
        Thread thread1 = new Thread(priority);
        Thread thread2 = new Thread(priority);

//      输出线程Thread-0的优先级
        System.out.println(thread.getPriority());

//      修改线程Thread-1的优先级为MAX_PRIORITY并输出
        thread1.setPriority(Thread.MAX_PRIORITY);
        System.out.println(thread1.getPriority());

//      修改线程Thread-2的优先级为MIN_PRIORITY并输出
        thread2.setPriority(Thread.MIN_PRIORITY);
        System.out.println(thread2.getPriority());

        thread.start();
        thread1.start();
        thread2.start();
    

输出结果:每次运行结果都不一定相同,且高优先级并不一定先执行,印证了上面的注意事项

5
10
1
Thread-0:重写run()方法
Thread-1:重写run()方法
Thread-2:重写run()方法

Process finished with exit code 0

 

以上是关于Java线程优先级的主要内容,如果未能解决你的问题,请参考以下文章

Java 多线程基础线程优先级和守护线程

java 多线程4: java线程的优先级

Java多线程系列--“基础篇”10之 线程优先级和守护线程

Java多线程编程之限制优先级

Java多线程-线程调度及获取和设置线程优先级

Java中的线程的优先级