Кто создал эти темы? - PullRequest
       2

Кто создал эти темы?

0 голосов
/ 17 декабря 2018

Я новичок в Java и нашел одну интересную вещь.Сейчас я изучаю сокеты, и пока я отлаживал свою программу, я заметил, что есть несколько потоков, которые я не создал.Затем я ставлю точку останова в самом начале своей программы, и когда я открываю потоки, я вижу все потоки, которые являются частью Socket.Но я еще не создал его, потому что это была ПЕРВАЯ строка кода.Теперь я хочу узнать, откуда эти потоки и почему они уже созданы, если сокет еще не создан.

enter image description here

1 Ответ

0 голосов
/ 17 декабря 2018

Потоки на вашем скриншоте выглядят следующим образом:

  • "Основной" поток - это поток, созданный для запуска вашего main метода.
  • Поток "Attach Listener"создается JVM для приема соединений с агентом отладки JVM.
  • Поток "Common Cleaner" связан с механизмом Java 9 Cleaner, который является лучшим способом выполнения tidyup при удалении объекта.
  • Поток "Финализатор" запускает finalize методы для недоступных объектов, поставленных в очередь GC.
  • Поток "Обработчик ссылок" выполняет обработку Reference объектов, поставленных в очередь GC.
  • Поток "Диспетчер сигналов" обрабатывает собственные сигналы (например, SIGINT, SIGHUP и т. Д.).По-видимому, они должны обрабатываться выделенным (собственным) потоком из-за способа работы собственных API-интерфейсов, связанных с сигналом.

Все эти потоки создаются самой JVM.

JVM также имеет один или несколько собственных потоков GC, но, по-видимому, они не отображаются в списке.Я предполагаю, что это потому, что у них нет соответствующего Thread объекта.(Они ... особенные!)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...