在操作系统中,线程可以划分优先级,优先级较高的线程得到的CPU资源较多,也就是CPU优先执行优先级较高的线程对象中的任务。设置线程优先级有助于帮助“线程规划器”确定下一次选择哪一个线程来优先执行。
设置线程的优先级使用setPriority()方法。
在java中,线程的优先级分为1-10,如果小于1或者大于10,则JDK抛出异常throw new IllegalArgumentException()。
JDK中使用3个常量来预置定义优先级的值,
public final static int MIN_PORIORITY = 1;
public final static int NORM_PORIORITY = 1;
public final static int MAX_PORIORITY = 1;
优先级的特性
1.继承特性
A线程启动B线程,则B线程的优先级与A是一样的。
2.规则性
线程的优先级与代码执行顺序无关,高优先级的线程总是大部分先执行完(但不代表高优先级的线程全部执行完),说明线程的优先级具有一定的规则性,也就是CPU尽量将执行资源让给优先级比较高的线程。
3.随机性
优先级较高的线程不一定每一次都先执行完。
线程的运行速率
优先级高的线程运行得快。