> Что может выступать корневым элементом для сборщика мусора (Go)
Уровень: senior · Роль: backend · Категория: Технические вопросы
Компании: ЛеруаМерлен
Стек: Go
> Пример ответа
В Go корневым элементом для сборщика мусора (GC) выступают глобальные переменные и стековые переменные (локальные переменные активных горутин). GC начинает обход графа объектов именно с этих корней, чтобы определить, какие объекты в куче всё ещё достижимы.
Корневые элементы включают:
- Глобальные переменные (пакетные и внешние).
- Локальные переменные в стеке каждой горутины (включая аргументы функций и возвращаемые значения).
- Регистры процессора, содержащие ссылки на объекты кучи (учитываются при сканировании стека).
Также в Go корнем может быть finalizer-очередь (специальные ссылки, которые GC обрабатывает отдельно), но это технический нюанс, не меняющий сути. Основной принцип: всё, что напрямую доступно из стека или глобальной области, является корнем для GC.
> Похожие задачи по backend
Почему Map не наследуется от коллекций
Что такое inline функция
Что происходит при выполнении функции main с набором принтов и что выводится в консоли
Вычистит ли сборщик мусора объекты, если они ссылаются друг на друга, но не имеют ссылок из корня
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью