6.获取和设置线程优先级


 

 

获取和设置线程优先级

 

导言

优先级对线程至关重要。Cpu优先执行优先级高的线程。

下面我们将来介绍如何获取线程的优先级

如何设置线程的优先级?

 获取线程的优先级

首先介绍的是如何获取线程的优先级,通过thread类的getpriority方法,

就可以获取到现成的优先级。它返回的是一个integer类型。下面我们来看看如何使用该方法,

以获取主线程的优先级为例,先通过currentThread方法获取到当前线程对象,然后调用它的getpriority方法获取到它的优先级,最后打印它的优先级。

package com.chenjie.executor.day06;

public class Main1 {
    public static void main(String[] args) {
        //获取当前正在执行的线程
        Thread thread = Thread.currentThread();
        //输出线程优先级大小
        System.out.println(thread.getPriority());


    }
}

从运行结果来看,可线程的优先级是5

5

Process finished with exit code 0

优先级的等级一共有1~10 10个等级,最低的是1,最高,10。

设置线程的优先级

下面我们来看看如何设置线程的优先级,通过setpriority方法就可以给线程设置新的优先级,该方法只有一个参数又priority,用来指定新的优先级。

下面我们来看看如何使用该方法,调用setpriority方法,将主线程的优先级设置为10,再次获取主线程的优先级,最后打印出线程的优先级,对比两次优先级,看看是否有变化。

package com.chenjie.executor.day06;

public class Main1 {
    public static void main(String[] args) {
        //获取当前正在执行的线程
        Thread thread = Thread.currentThread();
        //输出线程优先级大小
        System.out.println(thread.getPriority());
        //设置线程优先级
        thread.setPriority(10);
        //输出线程优先级大小
        System.out.println(thread.getPriority());
    }
}

结果来看,主线程的优先级由5变成了10。

5
10

Process finished with exit code 0

这里给大家介绍三个常用的优先级产量,它们都位于thread类的类里面,分别是最小优先级min_priority值为一,

默认优先级normal_priority值为5,

最大优先级max_priority值为10,我们就直接使用max_priority代替这个10。 

就像这样

package com.chenjie.executor.day06;

public class Main1 {
    public static void main(String[] args) {
        //获取当前正在执行的线程
        Thread thread = Thread.currentThread();
        //输出线程优先级大小
        System.out.println(thread.getPriority());
        //设置线程优先级
        thread.setPriority(Thread.MAX_PRIORITY);
        //输出线程优先级大小
        System.out.println(thread.getPriority());
    }
}

 总结

我们来总结一下本节的内容,本节介绍thread类的两个方法,分别是getpriority和setpriority。getpriority方法用于获取线程的优先级,setpriority用于设置线程的优先级。在实际开发中偶尔也会用到他们。

posted @ 2022-04-26 21:50  小陈子博客  阅读(447)  评论(0编辑  收藏  举报