> Что может выступать корневым элементом для сборщика мусора (Go)

Уровень: senior · Роль: backend · Категория: Технические вопросы

Компании: ЛеруаМерлен

Стек: Go

> Пример ответа

В Go корневым элементом для сборщика мусора (GC) выступают глобальные переменные и стековые переменные (локальные переменные активных горутин). GC начинает обход графа объектов именно с этих корней, чтобы определить, какие объекты в куче всё ещё достижимы.

Корневые элементы включают:

  • Глобальные переменные (пакетные и внешние).
  • Локальные переменные в стеке каждой горутины (включая аргументы функций и возвращаемые значения).
  • Регистры процессора, содержащие ссылки на объекты кучи (учитываются при сканировании стека).

Также в Go корнем может быть finalizer-очередь (специальные ссылки, которые GC обрабатывает отдельно), но это технический нюанс, не меняющий сути. Основной принцип: всё, что напрямую доступно из стека или глобальной области, является корнем для GC.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью