ThreadGroup详解
①定义线程组
ThreadGroup类中有 2个构造方法,它们用来定义线程组。这 2个构造方法的使用格 式如下:
public ThreadGroup(String name); public ThreadGroup(ThreadGroup parent,String name);
比如,创建一个名为fruit的线程组k,可用如下语句:
ThreadGroup k=new ThreadGroup(“fruit”);
如果一个线程组有父线程组,则可以在定义时,用第二个构造方法指出父线程组的名字。比如:
ThreadGroup k=new ThreadGroup(products,“fruit”);
②获得线程组中的信息
ThreadGroup类中有几个方法可用来获得线程组中有关线程和子线程的信息,这些信息包括线程组名字、线程组中可运行线程的数目、线程组中线程的最大优先级、线程组中各线程的名字等。这些方法有:
public int activeCount(); // 获得当前线程组中线程数目,包括可运行和不可运行的 public int activeGroupCount(); //获得当前线程组中活动的子线程组的数目 public int enumerate(Thread list[]); //列举当前线程组中的线程 public int enumerate(ThreadGroup list[]); //列举当前线程组中的子线程组 public final int getMaxPriority(); //获得当前线程组中最大优先级 public final String getName(); //获得当前线程组的名字 public final ThreadGroup getParent(); //获得当前线程组的父线程组 public boolean parentOf(ThreadGroup g); //判断当前线程组是否为指定线程的父线程 public boolean isDaemon(); //判断当前线程组中是否有监护线程 public void list(); //列出当前线程组中所有线程和子线程名
③对线程组操作
ThreadGroup类中的方法都是以线程组为操作目标的。其中,包括设置线程组中线程的最大优先级方法、将线程组中所有线程挂起或恢复到可运行状态的方法、终止线程组中所有线程的方法等。对线程组进行操作的方法如下所示:
public final void resume(); //使被挂起的当前组内的线程恢复到可运行状态 public final void setDaemon (boolean daemon); //指定一个线程为当前线程组的监护线程 public final void setMaxPriority(int pri); //设置当前线程组允许的最大优先级 public final void stop();//终止当前线程组中所有线程 public final void suspend(); //挂起当前线程组中所有线程 public String toStrinng(); //将当前线程组转换为String类的对象
不忘初心,方得始终