Java之執行緒的優先順序

鄭清發表於2018-08-28

   ① static Thread currentThread() :  返回對當前正在執行的執行緒物件的引用  ==》 獲取當前執行緒物件
   ② void setName(String name) : 給執行緒名稱賦值
   ③ String getName() : 獲取執行緒的名稱
執行緒的優先順序 :  理論上優先順序高的執行緒獲取CPU分配時間片的機率更大,但是受作業系統以及jvm版本的影響
       優先順序的範圍:1~10    10為最大,1為最小
       int getPriority() : 返回執行緒的優先順序  
       void setPriority(int newPriority) : 設定執行緒的優先順序  

ex:

public class Demo{
	public static void main(String[] args) {
		//建立兩個執行緒物件
		PriorityThread t1 = new PriorityThread();
		PriorityThread t2 = new PriorityThread();
		//把第一個執行緒的優先順序設定為1 (Thread.MIN_PRIORITY=1)
		//把第二個執行緒的優先順序設定為10 (Thread.MAX_PRIORITY=10)
		t1.setPriority(Thread.MIN_PRIORITY);//1
		t2.setPriority(Thread.MAX_PRIORITY);//2
		t1.setName("111111");
		t2.setName("222222");
		//啟動執行緒
		t1.start();
		t2.start();
	}
}
/*
 * 測試思路:建立兩個執行緒物件,每個執行緒物件都輸出100次任意內容。  
 * 把第一個執行緒的優先順序設定為1。
 * 把第二個執行緒的優先順序設定為10.
 * 理論上第二個執行緒應該先輸出結束
 */
class PriorityThread extends Thread{
	//每個執行緒物件都輸出100次任意內容。  
	public void run() {
		for (int i = 1; i <= 100; i++) {
			System.out.println(Thread.currentThread().getName()+" : "+i);
		}
	}
}

執行結果圖;

相關文章