7-线程组
线程组
在一个系统中若是线程数量很多,且功能分配明确,就可以将相同功能的线程放置在同一个线程组中。
其使用方式如下:
public class ThreadGroupDemo implements Runnable{
public static void main(String[] args) {
ThreadGroup tg = new ThreadGroup("TestGroup");
Thread t1 = new Thread(tg, new ThreadGroupDemo(), "T1");
Thread t2 = new Thread(tg, new ThreadGroupDemo(), "T2");
t1.start();
t2.start();
System.out.println("线程组中有:" + tg.activeCount()+"个活动线程");
tg.list();
}
@Override
public void run() {
String groupAndNAme = Thread.currentThread().getThreadGroup().getName()
+ "-" + Thread.currentThread().getName();
while(true){
System.out.println("I am " + groupAndNAme);
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
线程组中有:2个线程
I am TestGroup-T1
I am TestGroup-T2
java.lang.ThreadGroup[name=TestGroup,maxpri=10]
Thread[T1,5,TestGroup]
Thread[T2,5,TestGroup]
I am TestGroup-T1
I am TestGroup-T2…..
….
上述代码使用了Thread的构造函数,指定线程所属的线程组将线程和线程组关联起来,activeCount可以获得线程组中的活动线程的总数,要注意这个值知识个估值,无法精确。list()可以打印这个线程组中的所有线程信息,对调试有一定的帮助。
最后强烈建议在创建线程和线程组的时候创建一个比较合适的名字,而不是"Thread-0"这种。

浙公网安备 33010602011771号