线程组ThreadGroup
Java中使用ThreadGroup来表示线程组,它可以对一批线程进行分类管理,对线程组的控管理,即同时控制线程组里面的这一批线程
用户创建的所有线程都属于指定线程组,如果没有显示指定属于哪个线程组,那么该线程就属于默认线程组(即名字叫"main"的线程组)
默认情况下,子线程和父线程处于同一个线程组
只有在创建线程时才能指定其所在的线程组,线程运行中途不能改变它所属的线程组,也就是说线程一旦指定所在的线程组,就直到该线程结束
1、创建线程组(java.lang.ThreadGroup类)
创建线程组的时候需要指定线程组名字和它的父线程组,如果不指定其父线程组,那么默认是父线程组是当前线程组。(类中提供俩种构造器)
//线程组类ThreadGroup类的两个构造器
//String name 线程组名
//ThreadGroup parent 父线程组
public ThreadGroup(String name);
public ThreadGroup(ThreadGroup parent, String name);
例如:
//获得当前线程的所属的线程组
ThreadGroup tg0 = Thread.currentThread().getThreadGroup();
//没有指定线程组的父线程,默认其父线程组是tg0,当前线程组
ThreadGroup tg1 = new ThreadGroup("线程组1");
//指定其父线程组tg1
ThreadGroup tg2 = new ThreadGroup(tg1,"线程组1");
2、线程和线程组
例如:
//不指定则属于默认线程组main线程组
Thread t1 = new Thread("t1线程");
//也可以指定线程组
ThreadGroup tg = new ThreadGroup("我的线程组");
Thread t1 = new Thread(tg,"t1线程");