class Resource implements Runnable{
volatile public int i;
public Resource (int _i){
i=_i;
}
public void run(){
while(true){
if(i>0){
i--;
System.out.println(Thread.currentThread().getName()+" "+i);
}
else{
System.out.println(Thread.currentThread().getName());
break;
}
}
}
}
public class TestPriority {
public static void main(String[] args) {
// TODO Auto-generated method stub
Resource m=new Resource(100);
Thread t1=new Thread(m);
Thread t2=new Thread(m);
//Thread t3=new Thread(m);
t2.setPriority(Thread.MAX_PRIORITY);
t1.start();
//t3.start();
try{
Thread.sleep(5);
}catch(Exception e){
System.out.print(e);
}
t2.start();
}
}
高优先级的线程执行时,将采用独占的方式调度,除非它执行完毕,或是进入阻塞状态,低优先级的线程才获得执行权。
让t1先运行,5ms后t2运行,由于t2具有高优先级,所以t2运行结束后,t1得以执行,如果去掉t2的高优先级,可以发现两个线程交替运行。