线程的优先级setPriority
public class SetPriority {
public static void main(String[] args) {
Mypriority mypriority=new Mypriority();
Thread thread1=new Thread(mypriority);
Thread thread2=new Thread(mypriority);
Thread thread3=new Thread(mypriority);
Thread thread4=new Thread(mypriority);
Thread thread5=new Thread(mypriority);
Thread thread6=new Thread(mypriority);
//!!:先设置优先级,再启动线程
thread1.start();
thread2.setPriority(6);
thread2.start();
thread3.setPriority(Thread.MAX_PRIORITY);
thread3.start();
thread4.setPriority(4);
thread4.start();
thread5.setPriority(7);
thread5.start();
thread6.setPriority(8);
thread6.start();
System.out.println(Thread.currentThread().getName()+" "+Thread.currentThread().getPriority());
//主线程默认优先级为 5,其他线程不设置线程时优先级同样默认为 5
}
}
class Mypriority implements Runnable{
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+" "+Thread.currentThread().getPriority());
}
}
输出结果:
Thread-0 5
Thread-2 10
Thread-4 7
Thread-5 8
main 5
Thread-3 4
Thread-1 6
结论:线程设置了优先级也不一定会按优先级的顺序去执行,不设置优先级的线程和主线程的默认优先级为5.