Java中的线程的优先级

时间:2023-03-10 07:19:28
Java中的线程的优先级

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: