Почему VisualVM не отображает потоки демонов в Linux? - PullRequest
5 голосов
/ 18 февраля 2012

У меня проблема с потоками демонов в Linux.Мое приложение на сервере Windows работает нормально, когда я создаю дамп потока, я вижу, является ли поток демоном или нет.

Но когда я перемещаю свое приложение в Tomcat на сервере Linux и создаю дамп с JavaVisual VM Я больше не вижу демона в деталях потоков.

Означает ли это, что потоки демона работают только в Windows?И есть ли обходной путь, или нам нужно закрыть каждый поток при выходе из приложения?

Ответы [ 2 ]

2 голосов
/ 19 февраля 2012

http://docs.oracle.com/javase/6/docs/technotes/guides/visualvm/threads.html - Это говорит о том, что Visual VM хорошо работает как с обычными, так и с демоническими потоками.Я использовал живой монитор в Visual Vm, и он прекрасно работает в Linux.

Но когда я перемещаю свое приложение в Tomcat на сервере Linux и создаю дамп с помощью Java Visual> VM, я больше не вижу демон в деталях потоков.

Можно ли просто показать пример вывода?

Означает ли это, что потоки демона работают только в Windows?

Нет!Потоки демона прекрасно работают в Linux.

И есть ли обходной путь или нам нужно закрыть каждый поток при выходе из приложения?

Когда процесс умирает, ОСзаботится о том, чтобы пожать все связанные ресурсы, включая потоки.Итак, вам не нужно ничего делать.На самом деле, просто замечание: JVM не позволяет вам напрямую работать с жизненным циклом потоков.

1 голос
/ 23 февраля 2012

Похоже, вы отслеживаете свое приложение через соединение JMX.В этом случае информация о типе потока демона / не демона недоступна.

...