JAVA線程組概述和使用

一、概述

Java中使用ThreadGroup來表示線程組,它可以對一批線程進行分類管理,Java允許程序直接對線程組進行控制。

默認情況下,所有的線程都屬於主線程組。

 ThreadGroup getThreadGroup()
          返回該線程所屬的線程組。
 String getName()
          返回此線程組的名稱。

 我們也可以給線程設置分組

ThreadGroup(String name)
          構造一個新線程組。
ThreadGroup(ThreadGroup parent, String name)
          創建一個新線程組。
Thread(ThreadGroup group, Runnable target)
          分配新的 Thread 對象。
Thread(ThreadGroup group, Runnable target, String name)
          分配新的 Thread 對象,以便將 target 作爲其運行對象,將指定的 name 作爲其名稱,並作爲 group 所引用的線程組的一員。
Thread(ThreadGroup group, Runnable target, String name, long stackSize)
          分配新的 Thread 對象,以便將 target 作爲其運行對象,將指定的 name 作爲其名稱,作爲 group 所引用的線程組的一員,並具有指定的堆棧大小
Thread(ThreadGroup group, String name)
          分配新的 Thread 對象。

二、使用

1.默認是主線程組

MyRunnable mr = new MyRunnable();
Thread t1 = new Thread(mr, "張三");
Thread t2 = new Thread(mr, "李四");
//獲取線程組
ThreadGroup tg1 = t1.getThreadGroup();
ThreadGroup tg2 = t2.getThreadGroup();
String name1 = tg1.getName();
String name2 = tg2.getName();
System.out.println(name1);
System.out.println(name2);
// 通過結果我們知道了:線程默認情況下屬於main線程組
// 通過下面的測試,你應該能夠看到,默任情況下,所有的線程都屬於同一個組
System.out.println(Thread.currentThread().getThreadGroup().getName());

2.自己設定線程組

ThreadGroup tg = new ThreadGroup("這是一個新的組");

MyRunnable mr = new MyRunnable();
Thread t1 = new Thread(tg, mr, "張三");
Thread t2 = new Thread(tg, mr, "李四");
		
System.out.println(t1.getThreadGroup().getName());
System.out.println(t2.getThreadGroup().getName());
		
//通過組名稱設置後臺線程,表示該組的線程都是後臺線程
tg.setDaemon(true);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章