package com.brianway.learning.java.multithread.supplement.example2;
/**
* Created by Brian on 2016/4/17.
*/
/**
* P287
* 线程对象关联线程组,多级关联
*/
public class Run2_groupAddThreadMoreLevel {
public static void main(String[] args) {
ThreadGroup mainGroup = Thread.currentThread().getThreadGroup();
ThreadGroup group = new ThreadGroup(mainGroup, "A");
Runnable runnable = new Runnable() {
public void run() {
try {
System.out.println("run!");
Thread.sleep(10000);//运行状态才可以受组管理
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
Thread newThread = new Thread(group, runnable);
newThread.setName("z");
newThread.start();//线程启动然后才归到组A
ThreadGroup[] listGroup = new ThreadGroup[Thread.currentThread().getThreadGroup().activeGroupCount()];
Thread.currentThread().getThreadGroup().enumerate(listGroup);
System.out.println("main线程中有多少个子线程组:" + listGroup.length + " 名字为:" + listGroup[0].getName());
Thread[] listThread = new Thread[listGroup[0].activeCount()];
listGroup[0].enumerate(listThread);
System.out.println(listThread[0].getName());
}
}
/*
输出:
main线程中有多少个子线程组:1 名字为:A
run!
z
*/