Является ли сборщик мусора потоком демона? - PullRequest
11 голосов
/ 07 марта 2011

Является ли сборщик мусора потоком демона (фона)?

Спасибо.

Ответы [ 5 ]

7 голосов
/ 07 марта 2011

Я предполагаю, что да, поток сборщика мусора является потоком демона. Поток демона - это поток с низким приоритетом, который периодически запускается на заднем плане, выполняя операцию сбора мусора или другие запросы для системы времени выполнения Java.

2 голосов
/ 07 марта 2011

Это не нить с точки зрения java.lang.Thread, по крайней мере.

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

на jdk 1.8 следующие темы перечислены с

ThreadMXBean mxbean = ManagementFactory.getThreadMXBean();
    for(long id:mxbean.getAllThreadIds())
        System.out.println(mxbean.getThreadInfo(id));

Выход -

  1. Идентификатор "Прикрепить слушателя" = 5 ПУСК
  2. "Диспетчер сигналов" Id = 4 RUNNABLE
  3. Идентификатор "финализатора" = 3 ОЖИДАНИЕ на java.lang.ref.ReferenceQueue$Lock@63947c6b
  4. «Обработчик ссылок» Id = 2 WAITING на java.lang.ref.Reference$Lock@2b193f2d
  5. "main" Id = 1 RUNNABLE

Нет потока GC. Можно с уверенностью сказать, что процесс сборки мусора является нативным.

0 голосов
/ 28 февраля 2017

Поток демона также является потоком, который продолжает работать даже после выхода из JVM.Из документации Oracle При запуске виртуальной машины Java обычно существует один поток, не являющийся демоном (который обычно вызывает метод с именем main некоторого назначенного класса).Виртуальная машина Java продолжает выполнять потоки до тех пор, пока не произойдет одно из следующих событий: • Был вызван метод выхода класса Runtime, и диспетчер безопасности разрешил выполнение операции выхода.• Все потоки, которые не являются потоками демонов, умерли, либо возвращаясь из вызова метода run, либо выбрасывая исключение, которое распространяется за пределы метода run.

Так что, если GC является потоком демона, он должен быть собственным потоком, порожденным во время выполнения Java, но может продолжать работать после выхода из JVM

0 голосов
/ 01 августа 2013

Да: http://www.javaperspective.com/daemon-threads.html: (потоки демона рассматриваются как потоки, которые работают в фоновом режиме, и они обычно используются в качестве поставщиков услуг для пользовательских потоков. Например, сборщик мусора Java является потоком демона)

...