public class ThreadGroup extends Object implements Thread.UncaughtExceptionHandler
线程组表示一个线程的集合。此外,线程组也可以包含其他线程组。线程组构成一棵树,在树中,除了初始线程组外,每个线程组都有一个父线程组(新线程组的父线程组是目前正在运行线程的线程组)。 允许线程访问有关自己的线程组的信息,但是不允许它访问有关其线程组的父线程组或其他任何线程组的信息。
ThreadGroup(String name) 构造一个新线程组。 |
ThreadGroup(ThreadGroup parent, String name)
创建一个新线程组。 |
使用下面的指令来取得目前执行绪所属的执行绪群组名称:
Thread.currentThread().getThreadGroup().getName()。
线程组的基本使用:
ThreadGroup threadGroup1 = new ThreadGroup("group1");
ThreadGroup threadGroup2 = new ThreadGroup("group2");
Thread thread1 = new Thread(threadGroup1, "group1's member");
Thread thread2 = new Thread(threadGroup2, "group2's member");
获得线程组中活动的线程:
Thread[] threads = new Thread[threadGroup1.activeCount()];threadGroup1.enumerate(threads);方法:
int | activeCount()
返回此线程组中活动线程的估计数。 |
int | activeGroupCount() 返回此线程组中活动线程组的估计数。 |
boolean | allowThreadSuspension(boolean b)
已过时。 此调用的定义取决于 suspend() ,它被废弃了。更进一步地说,此调用的行为从不被指定。 |
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 | resume()
已过时。 此方法只用于联合 Thread.suspend 和 ThreadGroup.suspend 时,因为它们所固有的容易导致死锁的特性,所以两者都已废弃。有关详细信息,请参阅 Thread.suspend() 。 |
void | setDaemon(boolean daemon)
更改此线程组的后台程序状态。 |
void | setMaxPriority(int pri) 设置线程组的最高优先级。 |
void | stop()
已过时。 此方法具有固有的不安全性。有关详细信息,请参阅 Thread.stop() 。 |
void | suspend()
已过时。 此方法容易导致死锁。有关详细信息,请参阅 Thread.suspend() 。 |
String | toString()
返回此线程组的字符串表示形式。 |
void | uncaughtException(Thread t, Throwable e)
当此线程组中的线程因为一个未捕获的异常而停止,并且线程没有安装特定 Thread.UncaughtExceptionHandler 时,由 Java Virtual Machine 调用此方法。 |