Java線程的優先級設置


通過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的調度,並不是絕對的,只能為某一個線程增加一定的權重。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM