java中多线程之线程组

Java中使用ThreadGroup来表示线程组,对一批线程进行管理,控制一个线程组相当于掌控者属于这个线程组内的所有线程,但线程创建时若没有显示指定线程所属的线程组,则会被分到默认的线程组内

当某个线程加入了某个线程组后,该线程的整个周期都会在该线程组中,线程周期内无法改变该线程所属的线程组

创建Thread类时可以指定当前线程所属的线程组

  • Thread(ThreadGroup group,Runnable runnable),该线程属于group线程组,以runnable中的run方法作为线程执行体
  • Thread(ThreadGroup group,String name) 以name命名的新线程,属于group线程组
  • Thread(ThreadGroup group,Runnable runnable,String name) 以name命名的新线程,该线程属于group线程组,以runnable中的run方法作为线程执行体

Thread提供了一个getThreadGroup()方法,返回当前线程所属的线程组对象,该对象的getName()方法获取线程组的名称
ThreadGroup类的两个构造器

  • ThreadGroup(String name) 以指定的name作为名字创建线程组
  • ThreadGroup(ThreadGroup parent,String name) 以指定的父线程组,指定的name作为名字创建线程组
    注意线程组一旦被创建,线程组的名字不可被更改

ThreadGroup类的几个操作线程组内所有线程的常用方法

  • activeCount() 返回线程组内活动的线程数目 int
  • isDaemon() 是否为后台线程组 boolean
  • setDaemon(boolean bool) 设置线程组为后台线程组----最后一个线程执行结束或者被销毁后,该后台线程组自动销毁
  • interrupt() 中断线程组内所有的线程

举几个列子

package com.MrLiu.group.threadGroup;

public class ThreadClazz{


    public static void main(String[] args) {
            //创建一个默认线程
        new ThreadGroups("默认线程组线程").start();

        //创建一个线程组
        ThreadGroup group  =new ThreadGroup("新线程组");
        new ThreadGroups(group,"新线程一").start();
        new ThreadGroups(group,"新线程二").start();

    }
}


class ThreadGroups extends  Thread{

    //线程名字构造器
    public ThreadGroups(String name){
        super(name);
    }


    public ThreadGroups(ThreadGroup group,String name){
        super(group,name);
   }

    @Override
    public void run() {

        for (int i = 0; i < 10; i++) {
                System.out.println("当前线程为"+getName());
                System.out.println("所属线程组"+Thread.currentThread().getThreadGroup().getName());
                System.out.println("-------------------------------------------------------------------------------------");
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值