一、线程组概述
线程组ThreadGroup表示一组线程的集合,一旦一个线程归属到一个线程组之中后,就不能再更换其所在的线程组。Java使用ThreadGroup来表示线程组,它可以对一批线程进行分类管理,Java允许程序直接对线程组进行控制。
线程组的作用:方便统一管理,线程组可以进行复制,快速定位到一个线程,统一进行异常设置等。ThreadGroup它其实并不属于Java并发包中的内容,它是java.lang中的内容。
二、源码分析
2.1 继承关系
public class ThreadGroup implements Thread.UncaughtExceptionHandler {
ThreadGroup中有一个uncaughtException()方法。当线程组中某个线程发生Unchecked exception异常时,由执行环境调用此方法进行相关处理,如果有必要,可以重新定义此方法
2.2 属性
private final ThreadGroup parent; // 父线程组
String name;// 线程组名称
int maxPriority;// 线程组优先级
boolean destroyed;//是否已经被销毁
boolean daemon; // 守护线程
boolean vmAllowSuspension;// 供VM使用
int nUnstartedThreads = 0;// 线程组中未启动的线程
int nthreads;// 线程数量
Thread threads[]; // 线程
int ngroups; // 线程组数量
ThreadGroup groups[]; // 线程组<