有没有办法通过传递/使用线程id或name来获取threadGroup信息?问题是,我不能使用currentThread()方法。我想要获取特定线程的threadGroup信息。
发布于 2020-06-01 17:31:58
您可以使用Thread.getAllStackTraces()获取所有线程的列表。使用该Map中的密钥,您可以找到您想要的线程。之后,您可以简单地调用getThreadGroup()来获取线程组。检查以下示例:
Map<Thread, StackTraceElement[]> threads = Thread.getAllStackTraces();
for (Map.Entry<Thread, StackTraceElement[]> entry : threads.entrySet()) {
Thread t = entry.getKey();
ThreadGroup group = t.getThreadGroup();
System.out.println(t+" with group: "+group);
}这将生成如下输出:
Thread[main,5,main] with group: java.lang.ThreadGroup[name=main,maxpri=10]
Thread[Finalizer,8,system] with group: java.lang.ThreadGroup[name=system,maxpri=10]
Thread[Reference Handler,10,system] with group: java.lang.ThreadGroup[name=system,maxpri=10]
Thread[Signal Dispatcher,9,system] with group: java.lang.ThreadGroup[name=system,maxpri=10]https://stackoverflow.com/questions/62128844
复制相似问题