14.13.3 ThreadGroup
线程组(ThreadGroup)创建了一组线程。它定义了如下的两个构造函数:
ThreadGroup(String groupName)
ThreadGroup(ThreadGroup parentOb, String groupName)
对于两种形式,groupName指定了线程组的名字。第一种形式创建一个新的线程组,该线程组将当前的线程作为它的父线程。在第二种形式中,父线程由parentOb指定。由ThreadGroup定义的方法列在表14-17中。在比Java 2更早出现的Java版本中,ThreadGroup中也包括了stop( ),suspend( )以及resume( )方法。这些方法由于其本身固有的不稳定性,而在Java 2中被摈弃。
表14-17 由ThreadGroup 定义的方法
方法 描述
int activeCount( ) 返回线程组加上以这个线程作为父类的所有线程组中线
程的个数
int activeGroupCount( ) 返回调用线程是父类的线程的组数
final void checkAccess( ) 引起安全管理程序检验调用线程能访问和/或能改变在
其上checkAccess( )方法被调用的线程组
续表
方法 描述
final void destroy( ) 撤消被调用的线程组(以及任一子线程组)
int enumerate(Thread group[ ]) 将构成调用线程组的线程放入group数组中
int enumerate(Thread group[ ], boolean all) 将构成调用线程组的线程放入group数组中。如果all为true,那么线程组的所有子线程组中的线程也被放入
group中
int enumerate(ThreadGroup group[ ]) 将调用线程组的子线程组放入group数组中
int enumerate(ThreadGroup group[ ],
boolean all)
将调用线程组的子线程组放入group数组中。如果all为true,所有子线程组的子线程组(等等)也被放入group
中
final int getMaxPriority( ) 返回对线程组设置的最大优先权
final String getName( ) 返回线程组名
final ThreadGroup getParent( ) 如果调用ThreadGroup对象没有父类,则返回null;否则返回调用对象的父类
final void interrupt( ) 调用线程组中所有线程的interrupt( )方法(在Java 2中新增加的)
final boolean isDaemon( ) 如果线程组是一个端口后台进程组,则返回true;否则返回false
boolean isDestroyed( ) 如果线程组已经被破坏,则返回true;否则,返回false
void list( ) 显示关于线程组的信息
final boolean parentOf(ThreadGroup group) 如果调用线程是group的父线程(或group本身),则返回true;否则返回false
final void setDaemon(boolean isDaemon) 如果isDaemon为true,那么调用线程组被标记为一个端口后台进程组
final void setMaxPriority(int priority) 对调用线程组设置最大优先权priority
String toString( ) 返回线程组的字符串等价形式