线程组

线程组

Thread线程类中toString方法的定义

public String toString() {
 ThreadGroup group = getThreadGroup();//获取当前线程对象所属的线程组 
 if (group != null) {
  return "Thread[" + getName() + "," + getPriority() + "," + group.getName() + "]"; 
  } else { 
  return "Thread[" + getName() + "," + getPriority() + "," + "" + "]";
   } 
 }

所有线程都隶属于一个线程组。那可以是一个默认线程组【main】,亦可是一个创建线程时明确指定的组
说明 :
(1)在创建之初,线程被限制到一个组里,而且不能改变到一个不同的组 ;
(2)若创建多个线程而不指定一个组,它们就会与创建它的线程属于同一个组
public Thread(ThreadGroup group, Runnable target)
public Thread(ThreadGroup group, String name)
public Thread(ThreadGroup group, Runnable target, String name)

ThreadGroup myThreadGroup = new ThreadGroup("My Group");//创建线程组 
Thread myThread = new Thread(myThreadGroup,"a thread"); //定义线程时指定对应的线程组 
theGroup = myThread.getThreadGroup();//获取线程对象所属的线程组
ThreadGroup group=new ThreadGroup("yan1");
Thread t1=new Thread(group,
 ()->{
 for(int i=0;i<100;i++) 
 System.err.println(Thread.currentThread());
  } );
  t1.start();
System.out.println(Thread.currentThread());
 //线程组的用途 
 ThreadGroup tg=Thread.currentThread().getThreadGroup(); 
 int cc=tg.activeCount();//获取所有活跃线程线程数 
 Thread[] list=new Thread[cc]; 
 tg.enumerate(list);//获取所有获取线程,并存放在Thread[]中 
 for(Thread temp:list) 
 System.out.println(temp); 
 tg.list();
 //以树装结构显示当前的所有线程组

主要通途:可以通过线程组,对线程组中一组线程进行统一管理,而不是一个一个的管理。注意显示线程时,如果 线程显示为null表示线程已经消亡(执行结束)。在具体开发中很少使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值