class Main { 
  public static void main(String[] args) throws Exception { 
    ThreadGroup tg = Thread.currentThread().getThreadGroup(); 
 
    MyThread mt1 = new MyThread(tg, "first"); 
    MyThread mt2 = new MyThread(tg, "second"); 
 
    mt1.start(); 
    mt2.start(); 
 
    ThreadGroup parent = tg.getParent(); 
    Thread[] list = new Thread[parent.activeCount()]; 
    int count = parent.enumerate(list, true); 
    String[] thdinfo = new String[count]; 
    for (int i = 0; i < count; i++) 
      thdinfo[i] = list[i].toString(); 
 
    mt1.join(); 
    mt2.join(); 
 
    for (int i = 0; i < count; i++) 
      System.out.println(thdinfo[i]); 
  } 
} 
 
class MyThread extends Thread { 
  MyThread(ThreadGroup tg, String name) { 
    super(tg, name); 
  } 
 
  public void run() { 
    for (char c = 'A'; c <= 'Z'; c++) 
      System.out.println(c); 
 
    try { 
      Thread.sleep(1000); 
    } catch (InterruptedException e) { 
    } 
  } 
} 
 
    
     
  
  |