如果在一个系统中,线程数量特别多,而且功能分配比较明确,那就可以将相同功能的线程放在一个线程组里。线程组里的线程同时启动,同时停止。
线程组的使用很简单,如下一个简单的demo
public class threadGroup implements Runnable{
public static void main(String[] args) {
ThreadGroup tg = new ThreadGroup("threadGroup");//声明线程组
Thread t1 = new Thread(tg, new threadGroup(), "T1");
Thread t2 = new Thread(tg, new threadGroup(), "T2");//声明线程,指定所属的线程组
t1.start();
t2.start();
System.out.println("线程总数为:"+tg.activeCount());
tg.list();
}
@Override
public void run(){
String groupName = Thread.currentThread().getThreadGroup().getName()+"-"+Thread.currentThread().getName();
while(true){
System.out.println("I am "+ groupName);
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
注意:线程组也有stop()方法,他会停止线程组中所有的线程。但是他和thread.stop()相同的问题,因为使用起来需要格外的谨慎!