Java中的线程的优先级

Posted 牧羊人的世界

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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中的线程的优先级的主要内容,如果未能解决你的问题,请参考以下文章

多线程

JAVA中的多线程:线程的优先级和yield方法

Java中的守护线程

Java 线程系列Java 天生就是多线程

入坑两个月,java.lang包下的Thread类

Java中的多线程