如果线程没有没有明确优先级的话,系统会默认分配给了一个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()); } }