Java如何獲取正在運行的線程的優先級?
如何獲取正在運行的線程的優先級?
解決方法
下麵的例子使用setPriority()方法打印正在運行的線程的優先級。
public class SimplePriorities extends Thread { private int countDown = 5; private volatile double d = 0; public SimplePriorities(int priority) { setPriority(priority); start(); } public String toString() { return super.toString() + ": " + countDown; } public void run() { while(true) { for(int i = 1; i < 100000; i++) d = d + (Math.PI + Math.E) / (double)i; System.out.println(this); if(--countDown == 0) return; } } public static void main(String[] args) { new SimplePriorities(Thread.MAX_PRIORITY); for(int i = 0; i < 5; i++) new SimplePriorities(Thread.MIN_PRIORITY); } }
結果
上麵的代碼示例將產生以下結果。
Thread[Thread-0,10,main]: 5 Thread[Thread-0,10,main]: 4 Thread[Thread-0,10,main]: 3 Thread[Thread-0,10,main]: 2 Thread[Thread-0,10,main]: 1 Thread[Thread-1,1,main]: 5 Thread[Thread-1,1,main]: 4 Thread[Thread-1,1,main]: 3 Thread[Thread-1,1,main]: 2 Thread[Thread-1,1,main]: 1 Thread[Thread-2,1,main]: 5 Thread[Thread-2,1,main]: 4 Thread[Thread-2,1,main]: 3 Thread[Thread-2,1,main]: 2 Thread[Thread-2,1,main]: 1 . . .