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