1.4.線程基礎_線程組

線程組

當線程變多後就帶來了管理問題,JAVA平臺提供了線程組進行線程的管理。這運行我們把一個線程組內的所有線程當成一個單一的單元。比如要中斷線程組內的所有線程,只需要中斷線程組即可。假設我們要中斷10個線程,只需要把10個線程用一個線程組管理,然後中斷線程組就可。實例代碼如下:
public class ThreadGroupDemo {

    public static void main(String[] args){
        ThreadGroup tg = new ThreadGroup("DemoGroup");
        System.out.print("main:創建並啓動線程");
        for(int i=0; i<10; i++){
            Thread t = new Thread(tg, new InterruptableSleepThread());
            t.start();
        }

        try {
            System.out.print("main:sleep 0.5s");
            Thread.sleep(500);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        System.out.print("main:中斷線程組");
        tg.interrupt();
        System.out.print("main:退出");
    }
}

運行日誌:
main:創建並啓動線程Thread-0:0
Thread-3:0
Thread-1:0
Thread-2:0
Thread-4:0
main:sleep 0.5sThread-5:0
Thread-6:0
Thread-8:0
Thread-9:0
Thread-7:0
Thread-0:1
Thread-3:1
Thread-4:1
Thread-2:1
Thread-1:1
Thread-8:1
Thread-5:1
Thread-7:1
Thread-9:1
Thread-6:1
main:中斷線程組main:退出Thread-3:線程被中斷。
Thread-3:取得中斷信號狀態:false
Thread-3:線程退出。
Thread-2:線程被中斷。
Thread-2:取得中斷信號狀態:false
Thread-1:線程被中斷。
Thread-4:線程被中斷。
Thread-5:線程被中斷。
Thread-5:取得中斷信號狀態:false
Thread-5:線程退出。
Thread-4:取得中斷信號狀態:false
Thread-4:線程退出。
Thread-7:線程被中斷。
Thread-6:線程被中斷。
Thread-6:取得中斷信號狀態:false
Thread-0:線程被中斷。
Thread-0:取得中斷信號狀態:false
Thread-0:線程退出。
Thread-6:線程退出。
Thread-9:線程被中斷。
Thread-7:取得中斷信號狀態:false
Thread-7:線程退出。
Thread-1:取得中斷信號狀態:false
Thread-1:線程退出。
Thread-2:線程退出。
Thread-8:線程被中斷。
Thread-8:取得中斷信號狀態:false
Thread-8:線程退出。
Thread-9:取得中斷信號狀態:false
Thread-9:線程退出。

線程組的自包容

線程組是一個樹形結構,可以包含子線程組,在此基礎上我們可以設計出非常靈活強大的線程管理功能。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章