一、ThreadGroup的enumerate
- public int enumerate(Thread[] list)
- public int enumerate(Thread[] list, boolean recurse)
- 将ThreadGroup所有的active线程全部复制到Thread数组,recurse为true时,将所有子ThreadGroup的active线程递归复制到Thea的数组中;为false仅仅复制当前ThreadGroup的activex线程
二、例子
package p106_thread_group;
import java.util.concurrent.TimeUnit;
public class ThreadGroupEnumerateThreads {
public static void main(String[] args) throws InterruptedException {
ThreadGroup myGroup = new ThreadGroup("MyGroup");
Thread thread = new Thread(myGroup,()->{
while (true){
try {
TimeUnit.SECONDS.sleep(1);
}catch (InterruptedException e){
e.printStackTrace();
}
}
},"MyThread");
thread.start();
TimeUnit.MILLISECONDS.sleep(2);
ThreadGroup mainGroup = Thread.currentThread().getThreadGroup();
Thread[] list = new Thread[mainGroup.activeCount()];
int recurseSize = mainGroup.enumerate(list);
System.out.println(recurseSize);
recurseSize = mainGroup.enumerate(list,false);
System.out.println(recurseSize);
}
}
三、结果
