线程优先级测试

当可运行状态的线程很多,那么优先极高的线程将会先执行。

线程的优先级用1-10之间的整数表示,数值越大优先级越高,默认的优先级为5。

线程还有三个常量,看下面的测试类。

下面弄个小例子。

1.线程类

package com.citi.thread;

public class ThreadTest extends Thread{


 public void run(){
  
  System.out.println("Thread Name : " +this.getName() );
  
 }
}

2.测试类:

package com.citi.thread;

public class Test {

 public static void main(String[] args){
  ThreadTest t1= new ThreadTest();
//  t1.setPriority(Thread.MAX_PRIORITY);
  t1.start();
  
  ThreadTest t2= new ThreadTest();
//  t2.setPriority(Thread.NORM_PRIORITY);
  t2.start();  
  
  ThreadTest t3= new ThreadTest();
//  t3.setPriority(Thread.MIN_PRIORITY);
  t3.start();  
  
 }
}

如果这么写,那么线程的执行是无序的,也就是JVM想跑哪个跑哪个。

显示的结果可能是:(排列组合,3个线程这里可以显示6种情况)

Thread Name : Thread-0
Thread Name : Thread-2
Thread Name : Thread-1

这里如果给注释部分去掉,那么就是加了优先极了。那么可不可以达到我们的理想效果呢。

Thread Name : Thread-0
Thread Name : Thread-1
Thread Name : Thread-2

测试结果表明多数时候是我们的理想效果,但是也会无序,也就是说线程的优先级并不能保证,优先级高的线程先运行,这要怎么办呢。等以后想到了再写,

实在不行,你可以让不想跑的线程先睡会。


 


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值