Я работаю с многопоточной программой. Я вижу в JConsole, что у меня все еще есть 2 не-демона, но я не могу узнать, что именно (общее количество потоков превышает 30). Visual VM не предоставляет такую информацию.
Мониторинг потоков Java. Как узнать, не живут ли демоны?
Ответ 1
Run:
$ jstack PID | grep tid= | grep -v daemon
Это приведет к удалению всего потока заданного идентификатора Java, фильтрации строк с именами потоков и отфильтрования не-демона.
Удалите -v
, чтобы печатать только потоки демона.
Ответ 2
Возьмите дамп потока в VisualVM. В потоках демонов есть слово "daemon
" рядом с именем потока.
"Default RequestProcessor" daemon prio=1 tid=101e58000 nid=0x124d86000 runnable [124d85000]