JAVA深化篇

7372 2026-06-29 12:07:04

线程的优先级

什么是线程的优先级

每一个线程都是有优先级的,我们可以为每个线程定义线程的优先级,但是这并不能保证高优先级的线程会在低优先级的线程前执行。线程的优先级用数字表示,范围从1到10,一个线程的缺省优先级是5。

Java 的线程优先级调度会委托给操作系统去处理,所以与具体的操作系统优先级有关,如非特别需要,一般无需设置线程优先级。

注意

线程的优先级,不是说哪个线程优先执行,如果设置某个线程的优先级高。那就是有可能被执行的概率高。并不是优先执行。

线程优先级的使用

使用下列方法获得或设置线程对象的优先级。

int getPriority();void setPriority(int newPriority);

**注意:**优先级低只是意味着获得调度的概率低。并不是绝对先调用优先级高的线程后调用优先级低的线程。

class Priority implements Runnable{

private int num = 0;

private boolean flag = true;

@Override

public void run() {

while(this.flag){

System.out.println(Thread.currentThread().getName()+" "+num++);

}

}

public void stop(){

this.flag = false;

}

}

public class PriorityThread {

public static void main(String[] args)throws Exception {

Priority p1 = new Priority();

Priority p2 = new Priority();

Thread t1 = new Thread(p1,"线程1");

Thread t2 = new Thread(p2,"线程2");

System.out.println(t1.getPriority());

//Thread.MAX_PRIORITY = 10

t1.setPriority(Thread.MAX_PRIORITY);

//Thread.MAX_PRIORITY = 1

t2.setPriority(Thread.MIN_PRIORITY);

t1.start();

t2.start();

Thread.sleep(1000);

p1.stop();

p2.stop();

}

}

bbin平台大全:深入了解bbin平台的游戏种类与玩法,满足不同玩家的多样需求
日本电影潮骚