《Java高并发程序设计》学习 --2.4 分门别类的管理:线程组

来源:互联网 发布:乘联会销量数据 10月 编辑:程序博客网 时间:2024/05/17 01:21
线程组的使用如下:
public class ThreadGroupName implements Runnable {
@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();
}
}
}
public static void main(String[] args) {
ThreadGroup tg = new ThreadGroup("PrintGroup");
Thread t1 = new Thread(tg,new ThreadGroupName(),"T1");
Thread t2 = new Thread(tg,new ThreadGroupName(),"T2");
t1.start();
t2.start();
System.out.println(tg.activeCount());
tg.list();
}
}
上述代码中,建立一个名为“PrintGroup”的线程组,并将T1和T2两个线程加入这个组中。代码中,展示了线程组的两个重要功能,activeCount()可以获得活动线程的总数,但由于线程是动态的,因此这个值只是一个估计值,无法确定精确,list()方法可以打印这个线程组中所有的线程信息,对调试有一定的帮助。代码中创建了两个线程,使用Thread的构造函数,指定线程所属的线程组,将线程和线程组关联起来。
线程组还有一个值得注意的方法stop(),它会停止线程组中的所有线程。


注:本篇博客内容摘自《Java高并发程序设计》
0 0
原创粉丝点击