Luffy1
@Luffy1
Student, Junior .NET programmer, C#, JS, HTML/CSS

Нужно ли самостоятельно реализовывать механизм «Mark and Sweep» или он уже есть в сборщике мусора?

Допустим, у нас есть код:
class Program
{
 public static void Main()
 {
   Element el1 = new Element();
   Element el2 = new Element(){OtherElement = el1};
   el1.OtherElement = el2;
 }
}
class Element
{
 public Element OtherElement {get; set;}
}

Тут нам, чтобы удалить el1 and el2, понадобиться механизм "Mark and Sweep". Но я не знаю, есть он уже в сборщике мусора или нужно ли самому его реализовывать. Почему вообще поднялся этот вопрос? Сборщик мусора работает на основе ссылок: есть ссылка на объект - не трогаем объект, нету - освобождаем память. Но приспособлен ли сборщик мусора к циклическим ссылкам или нужно самому писать механизм "Mark and Sweep"?
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
ayazer
@ayazer
Sr. Software Engineer
Не надо ничего самому писать, все уже есть с коробки.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы