建议在创建线程组或线程时,都设置好名字方便后续调试时方便识别;
public class ThreadGroupDemo implements Runnable {
@Override
public void run() {
String name = Thread.currentThread().getThreadGroup().getName() + "-" + Thread.currentThread().getName();
while (true) {
System.out.println("I am " + name);
try {
TimeUnit.SECONDS.sleep(3);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
ThreadGroup group = new ThreadGroup("PrintGroup");
Thread t1 = new Thread(group, new ThreadGroupDemo(), "t1");
Thread t2 = new Thread(group, new ThreadGroupDemo(), "t2");
t1.start();
t2.start();
System.out.println(group.activeCount());
group.list();
}
}
console
I am PrintGroup-t1
2
I am PrintGroup-t2
java.lang.ThreadGroup[name=PrintGroup,maxpri=10]
Thread[t1,5,PrintGroup]
Thread[t2,5,PrintGroup]
I am PrintGroup-t2
I am PrintGroup-t1