- Java.lang 包类
- Java.lang - 首页
- Java.lang - Boolean
- Java.lang - Byte
- Java.lang - Character
- Java.lang - Character.Subset
- Java.lang - Character.UnicodeBlock
- Java.lang - Class
- Java.lang - ClassLoader
- Java.lang - Compiler
- Java.lang - Double
- Java.lang - Enum
- Java.lang - Float
- Java.lang - InheritableThreadLocal
- Java.lang - Integer
- Java.lang - Long
- Java.lang - Math
- Java.lang - Number
- Java.lang - Object
- Java.lang - Package
- Java.lang - Process
- Java.lang - ProcessBuilder
- Java.lang - Runtime
- Java.lang - RuntimePermission
- Java.lang - SecurityManager
- Java.lang - Short
- Java.lang - StackTraceElement
- Java.lang - StrictMath
- Java.lang - String
- Java.lang - StringBuffer
- Java.lang - StringBuilder
- Java.lang - System
- Java.lang - Thread
- Java.lang - ThreadGroup
- Java.lang - ThreadLocal
- Java.lang - Throwable
- Java.lang - Void
- Java.lang 包额外内容
- Java.lang - 接口
- Java.lang - 错误
- Java.lang - 异常
- Java.lang 包有用资源
- Java.lang - 有用资源
- Java.lang - 讨论
Java - ThreadGroup 类
介绍
Java ThreadGroup 类表示一组线程。它还可以包含其他线程组。线程组形成一棵树,其中除初始线程组外的每个线程组都有一个父线程组。
类声明
以下是 java.lang.ThreadGroup 类的声明:
public class ThreadGroup extends Object implements Thread.UncaughtExceptionHandler
类构造函数
序号 | 构造函数及描述 |
---|---|
1 |
ThreadGroup(String name) 此构造函数创建一个新的线程组。 |
2 |
ThreadGroup(ThreadGroup parent, String name) 此构造函数创建一个新的线程组。 |
类方法
序号 | 方法及描述 |
---|---|
1 | int activeCount()
此方法返回此线程组中活动线程数量的估计值。 |
2 | int activeGroupCount()
此方法返回此线程组中活动组数量的估计值。 |
3 | void checkAccess()
此方法确定当前正在运行的线程是否有权修改此线程组。 |
4 | void destroy()
此方法销毁此线程组及其所有子组。 |
5 | int enumerate(Thread[] list)
此方法将此线程组及其子组中的每个活动线程复制到指定的数组中。 |
6 | int enumerate(Thread[] list, boolean recurse)
此方法将此线程组中的每个活动线程复制到指定的数组中。 |
7 | int enumerate(ThreadGroup[] list)
此方法将此线程组中每个活动子组的引用复制到指定的数组中。 |
8 | int enumerate(ThreadGroup[] list, boolean recurse)
此方法将此线程组中每个活动子组的引用复制到指定的数组中。 |
9 | int getMaxPriority()
此方法返回此线程组的最大优先级。 |
10 | String getName()
此方法返回此线程组的名称。 |
11 | ThreadGroup getParent()
此方法返回此线程组的父线程组。 |
12 | void interrupt()
此方法中断此线程组中的所有线程。 |
13 | boolean isDaemon()
此方法测试此线程组是否为守护线程组。 |
14 | boolean isDestroyed()
此方法测试此线程组是否已被销毁。 |
15 | void list()
此方法将有关此线程组的信息打印到标准输出。 |
16 | boolean parentOf(ThreadGroup g)
此方法测试此线程组是否为线程组参数本身或其祖先线程组之一。 |
17 | void setDaemon(boolean daemon)
此方法更改此线程组的守护进程状态。 |
18 | void setMaxPriority(int pri)
此方法设置组的最大优先级。 |
19 | String toString()
此方法返回此线程组的字符串表示形式。 |
20 | void uncaughtException(Thread t, Throwable e)
当此线程组中的线程由于未捕获的异常而停止,并且线程没有安装特定的 Thread.UncaughtExceptionHandler 时,Java 虚拟机将调用此方法。 |
继承的方法
此类继承自以下类的方法:
- java.lang.Object
使用 ThreadGroups 对线程进行分组的示例
以下示例展示了在多线程程序中使用 ThreadGroup 的方法。
package com.tutorialspoint; public class ThreadGroupDemo implements Runnable { public static void main(String[] args) { ThreadGroupDemo tg = new ThreadGroupDemo(); tg.func(); } public void func() { try { // create a parent ThreadGroup ThreadGroup pGroup = new ThreadGroup("Parent ThreadGroup"); // create a child ThreadGroup for parent ThreadGroup ThreadGroup cGroup = new ThreadGroup(pGroup, "Child ThreadGroup"); // create a thread Thread t1 = new Thread(pGroup, this); System.out.println("Starting " + t1.getName() + "..."); t1.start(); // create another thread Thread t2 = new Thread(cGroup, this); System.out.println("Starting " + t2.getName() + "..."); t2.start(); // display the number of active threads System.out.println("Active threads in \"" + pGroup.getName() + "\" = " + pGroup.activeCount()); // block until the other threads finish t1.join(); t2.join(); } catch (InterruptedException ex) { System.out.println(ex.toString()); } } // implements run() public void run() { for(int i = 0;i < 1000;i++) { i++; } System.out.println(Thread.currentThread().getName() + " finished executing."); } }
让我们编译并运行上述程序,这将产生以下结果:
Starting Thread-0... Starting Thread-1... Thread-0 finished executing. Active threads in "Parent ThreadGroup" = 1 Thread-1 finished executing.
广告