首页 > 代码库 > Java中的线程的优先级

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:

 

Java中的线程的优先级