У меня есть дамп потока, и в этом дампе потока каждый поток отображается в формате, как показано ниже:
"isThreadCpuTimeSupported": "true",
"getLockOwnerName": null,
"isSuspended": "false",
"stacktrace": "java.base@11.0.5/java.net.PlainSocketImpl.accept0(Native
"cpuTime": "36359.375",
"userTime": "25828.125",
"threadState": "RUNNABLE",
"id": "1",
"lockName": null,
"threadName": "main",
"isNative": "true"
Мое требование - получить threadGroup каждого потока. Как я могу получи? Нужно ли мне сначала добавить их в группу потоков? Как мне узнать, входят ли они в группу потоков? На веб-сайте Fastthread.io когда я загружаю дамп потока, он автоматически находит группу потоков, как это сделать?
На стороне сервера я делаю что-то вроде этого, чтобы получить дамп потока:
ThreadMXBean tmbean = ManagementFactory.getThreadMXBean();
List<HashMap> list = new ArrayList<>();
long[] tids;
ThreadInfo[] tinfos;
tids = tmbean.getAllThreadIds();
tinfos = tmbean.getThreadInfo(tids, Integer.MAX_VALUE);
for (ThreadInfo ti : tinfos) {
try {
list.add( printThreadInfo(ti,tmbean,response ));
} catch (IOException ex) {
_logger.error("could not call printThreadInfo",ex);
}
}
...
...
и для каждого ti
map.put("threadName", ti.getThreadName());