Java 中线程优先级简介:
1. Java 提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程。
按照线程的优先级决定应该调度哪个线程来执行.
2. 线程的优先级用数字表示, 范围从 1 到 10, 一个线程的缺省优先级是 5.
Thread.MIN_PRIORITY = 1;
Thread.MAX_PRIORITY = 10;
Thread.NORM_PRIORITY = 5;
3. 使用下述方法获得、或设置线程对象的优先级.
int getPriority();
void setPriority(int newPriority);
【注】线程的优先级越高的, 得到的 CPU 执行的时间片就越多.(每个线程都有自己的优先级)
Demo_1:
public class TestPriority {
public static void main(String[] args){
T1 t1 = new T1();
T2 t2 = new T2();
Thread tt1 = new Thread(t1);
Thread tt2 = new Thread(t2);
tt1.setPriority(Thread.NORM_PRIORITY + 3); // tt1 的优先级提高了, 得到 CPU 执行的时间片多了
tt1.start();
tt2.start();
}
}
class T1 implements Runnable {
@Override
public void run() {
for(int i = 0; i < 100; i++){
System.out.println("T1: "+i);
}
}
}
class T2 implements Runnable {
@Override
public void run() {
for(int i = 0; i < 200; i++){
System.out.println("---T2: "+i);
}
}
}
Demo_2: