- 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.
广告