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用于设置线程的优先级。在实际开发中偶尔也会用到他们。
本文来自博客园,作者:小陈子博客,转载请注明原文链接:https://www.cnblogs.com/cj8357475/p/16085973.html