通過setPriortiy
設置優先級,有效數字從1-10,否則無效,通過下面的源碼分析,若是當前線程的優先級設置的級別大於所在的Group則當前設置的優先級失效,使用所在group的最大優先級。默認為5
public final void setPriority(int newPriority) {
ThreadGroup g;
checkAccess();
// 驗證有效優先級別為1-10
if (newPriority > MAX_PRIORITY || newPriority < MIN_PRIORITY) {
throw new IllegalArgumentException();
}
// 若當前的group不為空則判斷當前設置的優先級是否大於所在優先級,若大於則使用group的最大優先級。
if((g = getThreadGroup()) != null) {
if (newPriority > g.getMaxPriority()) {
newPriority = g.getMaxPriority();
}
setPriority0(priority = newPriority);
}
}
不建議在實際的開發過程中所有線程優先級來做業務操作,因為此優先級還是要依賴於CPU的調度,並不是絕對的,只能為某一個線程增加一定的權重。