package cn.itcast_06;
public class MyRunnable implements Runnable {
@Override
public void run() {
for (int x = 0; x < 100; x++) {
System.out.println(Thread.currentThread().getName() + ":" + x);
}
}
}
package cn.itcast_06;
/*
* 執行緒組: 把多個執行緒組合到一起。
* 它可以對一批執行緒進行分類管理,Java允許程式直接對執行緒組進行控制。
*/
public class ThreadGroupDemo {
public static void main(String[] args) {
// method1();
// 我們如何修改執行緒所在的組呢?
// 建立一個執行緒組
// 建立其他執行緒的時候,把其他執行緒的組指定為我們自己新建執行緒組
method2();
}
private static void method2() {
// ThreadGroup(String name)
ThreadGroup tg = new ThreadGroup("這是一個新的組");
MyRunnable my = new MyRunnable();
// Thread(ThreadGroup group, Runnable target, String name)
Thread t1 = new Thread(tg, my, "林青霞");
Thread t2 = new Thread(tg, my, "劉意");
System.out.println(t1.getThreadGroup().getName());
System.out.println(t2.getThreadGroup().getName());
//通過組名稱設定後臺執行緒,表示該組的執行緒都是後臺執行緒
tg.setDaemon(true);
}
private static void method1() {
MyRunnable my = new MyRunnable();
Thread t1 = new Thread(my, "林青霞");
Thread t2 = new Thread(my, "劉意");
// 我不知道他們屬於那個執行緒組,我想知道,怎麼辦
// 執行緒類裡面的方法:public final ThreadGroup getThreadGroup()
ThreadGroup tg1 = t1.getThreadGroup();
ThreadGroup tg2 = t2.getThreadGroup();
// 執行緒組裡面的方法:public final String getName()
String name1 = tg1.getName();
String name2 = tg2.getName();
System.out.println(name1); //main
System.out.println(name2); //main
// 通過結果我們知道了:執行緒預設情況下屬於main執行緒組
// 通過下面的測試,你應該能夠看到,默任情況下,所有的執行緒都屬於同一個組
System.out.println(Thread.currentThread().getThreadGroup().getName()); //main
}
}