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 */