java多線程如何設置優先級


從thread類中,我們可以看到類中預先定義了三個優先級。

通過getpriority可以看到新建線程的默認等級。

public class ExtendsThread {

    public static void main(String[] args) {
        MyThread c = new MyThread("線程C");
        int priority = c.getPriority();
        System.out.println(priority);
    }
}

class MyThread extends Thread {
    private String title;
    public MyThread(String title) {
        this.title = title;
    }
    @Override
    public void run() {
        for(int x = 0; x < 5 ; x++) {
            System.out.println(this.title + "運行,x = " + x);
        }
    }
}

我們可以通過setpriority進行優先級設置。

public static void main(String[] args) {
        MyThread a = new MyThread("線程A");
        MyThread b = new MyThread("線程B");
        MyThread c = new MyThread("線程C");
        b.setPriority(1);
        a.setPriority(10);
        c.setPriority(10);
        a.start();
        b.start();
        c.start();
    }

我們查看運行結果。

發現即使線程B設置的優先級很低,其仍然可以執行。
我們可以得到如下的結論:cpu分配資源,在控制台上並不能看出,而且,優先級低的並不代表一定要等到優先級高的運行完才能運行,只是cpu分配的資源少了而已。


免責聲明!

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



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