1 概念
publicclassThreadGroupextendsObjectimplementsThread.UncaughtExceptionHandler
线程组:多个线程存放在一个组中,方便对线程的统一管理。Java中具有专门的线程组对象,对应ThreadGroup类。如果创建的线程没有指定任何的组,那么这个线程在main组当中。
2 构造器和常用方法
构造器:
/***创建一个新线程组。新线程组的父线程组是目前正在运行线程的线程组。**@paramname新线程组的名称*/publicThreadGroup(Stringname)/***创建一个新线程组。新线程组的父线程组是指定的线程组。**@paramparent父线程组*@paramname新线程组的名称。*/publicThreadGroup(ThreadGroupparent,Stringname)
常用方法:
//获取当前线程所在线程组的活动线程总数(估计)。threadGroup.activeCount()//或者下面的方法Thread.activeCount()//获取该线程组的父线程组threadGroup.getParent()//获取当前线程所属线程组Thread.currentThread().getThreadGroup()
3 使用
常常结合Thread的构造器进行使用,用来对一批线程进行分组,方便追踪。
//获取main线程的线程组System.out.println(Thread.currentThread().getThreadGroup());//获取当前线程的线程组中的活动线程数System.out.println(Thread.activeCount());//获取main线程的线程组信息System.out.println(Thread.currentThread());//新建线程组ThreadGroupthreadGroup=newThreadGroup("新线程组");//获取该线程组的父线程组,可以看到,它的父线程组是main线程组ThreadGroupparent=threadGroup.getParent();System.out.println(parent);//新建子线程,加入该线程组Threadthread=newThread(threadGroup,"子线程");//打印该子线程信息System.out.println(thread);
打印的线程对象的格式:
Thread[子线程,5,新线程组] Thread[main,5,main]
其中: Thread-0:线程的名称 5:线程默认的优先级 main:线程所在的线程组名(如果创建的线程没有指定任何的组,那么这个线程默认在main线程组当中)。
如果有什么不懂或者需要交流,可以留言。另外希望点赞、收藏、关注,我将不间断更新各种Java学习博客!