当前位置: 首页 > 教程 > Java.lang >

Java.lang ThreadGroup

精华
小牛编辑
151浏览
2023-03-14

1 Java.lang ThreadGroup介绍

java.lang.ThreadGroup 类表示一组线程。它也可以包括其它的线程组。线程组构成一棵树,除了初始线程组中的每个线程组都有一个父类。

2 Java.lang ThreadGroup声明

public class ThreadGroup
   extends Object
      implements Thread.UncaughtExceptionHandler

3 Java.lang ThreadGroup方法

方法 描述
int activeCount() 此方法返回活动线程在该线程组的数目的估计值。
int activeGroupCount() 此方法返回活动组在该线程组的数目的估计值。
void checkAccess() 此方法确定当前运行的线程是否有权修改该线程组。
void destroy() 此方法销毁此线程组及其所有子组。
int enumerate(Thread[] list) 此方法会复制到指定的数组中该线程组及其子组中的所有活动线程。
int enumerate(Thread[] list, boolean recurse) 此方法会复制到指定的数组该线程组中的所有活动线程。
int enumerate(ThreadGroup[] list) 此方法会复制到该线程组中指定的数组引用所有活动子组。
int enumerate(ThreadGroup[] list, boolean recurse) 此方法会复制到该线程组中指定的数组引用所有活动子组。
int getMaxPriority() 此方法返回该线程组的最大优先级。
String getName() 此方法返回该线程组的名称。
ThreadGroup getParent() 此方法返回该线程组的父级。
void interrupt() 此方法会中断该线程组中的所有线程。
boolean isDaemon() 此方法测试该线程组是一个后台程序线程组。
boolean isDestroyed() 此方法测试该线程组是否已销毁。
void list() 此方法打印这个线程组到标准输出的信息。
boolean parentOf(ThreadGroup g) 此方法测试该线程组是否为线程组参数或其祖先线程组之一。
void setDaemon(boolean daemon) 此方法更改该线程组的守护进程的状态。
void setMaxPriority(int pri) 此方法设置组的最高优先级。
String toString() 此方法返回该线程组的字符串表示形式。
void uncaughtException(Thread t, Throwable e) 当该线程组中的线程停止,因为未捕获的异常的此方法调用Java虚拟机,线程没有安装特定的Thread.UncaughtExceptionHandler。

4 Java.lang ThreadGroup案例

package cn.xnip;

/**
 * 小牛知识库网: https://www.xnip.cn
 */
public class ThreadGroupDemo implements Runnable{  
    public void run() {  
          System.out.println(Thread.currentThread().getName());  
    }  
   public static void main(String[] args) {  
      ThreadGroupDemo runnable = new ThreadGroupDemo();  
          ThreadGroup tg1 = new ThreadGroup("Parent ThreadGroup");  
            
          Thread t1 = new Thread(tg1, runnable,"one");  
          t1.start();  
          Thread t2 = new Thread(tg1, runnable,"two");  
          t2.start();  
          Thread t3 = new Thread(tg1, runnable,"three");  
          t3.start();  
               
          System.out.println("Thread Group Name: "+tg1.getName());  
         tg1.list();  
  
    }  
   } 

输出结果为:

one
two
three
Thread Group Name: Parent ThreadGroup
java.lang.ThreadGroup[name=Parent ThreadGroup,maxpri=10]
    Thread[one,5,Parent ThreadGroup]
    Thread[two,5,Parent ThreadGroup]
    Thread[three,5,Parent ThreadGroup]