У меня есть вопрос относительно потоков, которые мое приложение порождает во время выполнения, и об их статусе.
У меня есть приложение Swing, и я заметил парочку странного поведения в некоторых тестовых сценариях с использованием Java VisualVM. Запустив мою программу в течение 30 + минут, ничего не делая (просто запустив и оставив там работать), я заметил следующее.
Во-первых, во вкладке Threads я вижу много живых потоков.
Чтение (среди прочего)
Потоки по умолчанию, такие как DestroyJavaVM, Обработчик ссылок, Диспетчер сигналов и Что это за потоки, которые запускаются, когда приложение Java начинает свое выполнение? Я понимаю, что у большинства этих потоков есть очень веская причина быть там. (Я все еще пытаюсь разобраться с "RMI TCP")
Однако у меня есть сомнения по поводу их состояния. Это нормально, что первые шесть из них 100% времени находились в состоянии «Работает»?
Кроме того, может ли какой-либо из этих потоков объяснить потребление кучи следующим образом?
Я заметил, что многие экземпляры HashMap $ Entry и TreeMap $ Entry ссылаются и создаются библиотеками, происходящими из sun.rmi. *, И я подумал, что это может быть связано с потоками "RMI TCP" ...
И последнее, но не менее важное: если я попытаюсь dispose () мой основной JFrame, сам фрейм исчезнет, но приложение все равно будет работать .... могут ли эти потоки быть причиной (или ее частью) ??
Спасибо всем.