В CLR через C # Рихтер объясняет, что:
Специальный высокоприоритетный поток CLR предназначен для вызова Finalize
методов
(см. Заголовок «Внутренние элементы завершения» главы 20)
Это единственный контекст, в котором он говорит о потоке сборщика мусора. Чуть ранее в этой главе он объясняет, что сборка мусора запускается в ответ на одно из следующих событий:
- Поколение 0 заполнено
- Позвоните на
GC.Collect
- Windows сообщает о нехватке памяти
- CLR выгружает домен приложений
- CLR выключается
... что говорит о том, что единственным потоком, созданным сборщиком мусора, является этот единственный, высокоприоритетный поток финализатора.
Редактировать: Затем он продолжает в "Параллельной коллекции", чтобы объяснить, что:
В многопроцессорной системе, в которой работает исполняющая версия рабочей станции, сборщик мусора имеет дополнительный фоновый поток для одновременного сбора объектов во время работы приложения. [...] У сборщика мусора есть фоновый поток с обычным приоритетом, который помечает недоступные объекты.