线程组
线程组
概述
1.Java中使用ThreadGroup来表示线程组,它可以对一批线程进行分类管理,Java允许程序直接对线程组进行控制。
2.默认情况下,所有的线程都属于主线程组。
3.public final ThreadGroup getThreadGroup() 通过线程对象获取他所属于的组
4.public final String getName() 通过线程组对象获取组的名字
5.我们也可以给线程设置分组ThreadGroup(String name) 创建线程组对象并给其赋值名字
/** * 掌握: * 1.如何获取一个线程所属的线程组 * 2.如果在创建一个子线程时,设置它所属的线程组 * @author tuba * */ public class ThreadGroupDemo { public static void main(String[] args) { //主线程 Thread mainThread = Thread.currentThread(); /** * [main,5,main] * main:线程名称 * 5:代先级 * main:当前线程所属的组名 */ System.out.println("线程:" + mainThread); //获取线程的“线程组”对象 ThreadGroup tg = mainThread.getThreadGroup(); System.out.println("线程组:" + tg.getName()); //创建子线程 Thread t1 = new Thread(){ @Override public void run() { System.out.println("线程A..."); } }; //t1.start(); System.out.println("t1子线程的线程组:" + t1.getThreadGroup()); //创建一个线程组 ThreadGroup abcGroup = new ThreadGroup("abc组"); //创建子线程对象 Thread t2 = new Thread(abcGroup, new Runnable() { @Override public void run() { // TODO Auto-generated method stub System.out.println("线程B"); } }); System.out.println("t2子线程的线程组:" + t2.getThreadGroup()); } }
打印结果:
线程:Thread[main,5,main] 线程组:main t1子线程的线程组:java.lang.ThreadGroup[name=main,maxpri=10] t2子线程的线程组:java.lang.ThreadGroup[name=abc组,maxpri=10]