1 package com.xt.thinks21_2;
 2 
 3 import java.util.concurrent.ExecutorService;
 4 import java.util.concurrent.Executors;
 5 
 6 /**
 7  * java线程优先级测试
 8  * 
 9  * @author Administrator
10  *
11  */
12 public class ThreadPriorityTest implements Runnable {
13     private int countDown = 5;
14     private int priority;
15     private volatile double d;
16 
17     public ThreadPriorityTest(int priority) {
18         this.priority = priority;
19     }
20 
21     @Override
22     public String toString() {
23         // TODO Auto-generated method stub
24         return Thread.currentThread() + ":" + countDown;
25     }
26 
27     @Override
28     public void run() {
29         // TODO Auto-generated method stub
30         Thread.currentThread().setPriority(priority);
31         while (true) {
32             for (int i = 0; i < 10000000; i++) {
33                 d += (Math.PI + Math.E) / (double) i;
34                 if (i % 1000 == 0)
35                     Thread.yield();
36             }
37             System.out.println(this);
38             if (--countDown == 0)
39                 return;
40         }
41     }
42 
43     public static void main(String[] args) {
44         ExecutorService es = Executors.newCachedThreadPool();
45         for (int i = 0; i < 5; i++)
46             es.execute(new ThreadPriorityTest(Thread.MIN_PRIORITY));
47         es.execute(new ThreadPriorityTest(Thread.MAX_PRIORITY));
48         es.shutdown();
49     }
50 }

线程内部执行耗时操作的时候,设置线程优先级可以有效的调整线程执行顺序(无规律)。