Подтвердить что ты не робот

Мониторинг потоков Java. Как узнать, не живут ли демоны?

Я работаю с многопоточной программой. Я вижу в JConsole, что у меня все еще есть 2 не-демона, но я не могу узнать, что именно (общее количество потоков превышает 30). Visual VM не предоставляет такую ​​информацию.

4b9b3361

Ответ 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]