Java 简明教程
Java - ThreadGroup Class
ThreadGroup Class
Java ThreadGroup 类表示一组线程。它还可以包含其他线程组。线程组形成一个树形结构,其中除初始线程组之外的每个线程组都有一个父级。
The Java ThreadGroup class represents a set of threads. It can also include other thread groups. The thread groups form a tree in which every thread group except the initial thread group has a parent.
ThreadGroup Class Declaration
以下是对 java.lang.ThreadGroup 类的声明:
Following is the declaration for java.lang.ThreadGroup class −
public class ThreadGroup
extends Object
implements Thread.UncaughtExceptionHandler
ThreadGroup Class Constructors
Sr.No. |
Constructor & Description |
1 |
ThreadGroup(String name) This constructs a new thread group. |
2 |
ThreadGroup(ThreadGroup parent, String name) This creates a new thread group. |
ThreadGroup Class Methods
Sr.No. |
Method & Description |
1 |
int activeCount()This method returns an estimate of the number of active threads in this thread group. |
2 |
int activeGroupCount()This method returns an estimate of the number of active groups in this thread group. |
3 |
void checkAccess()This method determines if the currently running thread has permission to modify this thread group. |
4 |
void destroy()This method Destroys this thread group and all of its subgroups. |
5 |
int enumerate(Thread[] list)This method copies into the specified array every active thread in this thread group and its subgroups. |
6 |
int enumerate(Thread[] list, boolean recurse)This method copies into the specified array every active thread in this thread group. |
7 |
int enumerate(ThreadGroup[] list)This method copies into the specified array references to every active subgroup in this thread group. |
8 |
int enumerate(ThreadGroup[] list, boolean recurse)This method copies into the specified array references to every active subgroup in this thread group. |
9 |
int getMaxPriority()This method returns the maximum priority of this thread group. |
10 |
String getName()This method returns the name of this thread group. |
11 |
ThreadGroup getParent()This method returns the parent of this thread group. |
12 |
void interrupt()This method interrupts all threads in this thread group. |
13 |
boolean isDaemon()This method Tests if this thread group is a daemon thread group. |
14 |
boolean isDestroyed()This method tests if this thread group has been destroyed. |
15 |
void list()This method prints information about this thread group to the standard output. |
16 |
boolean parentOf(ThreadGroup g)This method tests if this thread group is either the thread group argument or one of its ancestor thread groups. |
17 |
void setDaemon(boolean daemon)This method changes the daemon status of this thread group. |
18 |
void setMaxPriority(int pri)This method sets the maximum priority of the group. |
19 |
String toString()This method returns a string representation of this Thread group. |
20 |
void uncaughtException(Thread t, Throwable e)This method called by the Java Virtual Machine when a thread in this thread group stops because of an uncaught exception, and the thread does not have a specific Thread.UncaughtExceptionHandler installed. |
Methods Inherited
此类从以下类中继承方法:
This class inherits methods from the following classes −
-
java.lang.Object
Example of ThreadGroup Class in Java
以下示例展示了在多线程程序中使用 ThreadGroup。
Following example showcases the usage of ThreadGroup in a multithreaded program.
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.");
}
}