线程组

线程组

概述

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]

 

posted @ 2018-12-22 17:13  expworld  阅读(118)  评论(0编辑  收藏  举报