--- aliases: - SATB tags: - зрелость/🌱 date: "[[2023-11-08]]" zero-link: - "[[00 Разработка]]" parents: linked: --- Его основное преимущество заключается в том, что он позволяет сборщику мусора работать параллельно с приложением, минимизируя паузы, необходимые для сбора мусора. Вот как это работает: 1. В начале фазы отметки сборщик мусора делает "снимок" кучи, отмечая все объекты, которые являются доступными на этот момент. 2. Приложение продолжает работать и может создавать новые объекты или изменять ссылки на существующие объекты. 3. Любые изменения, которые могут влиять на "снимок", записываются сборщиком мусора. Это включает в себя объекты, которые стали доступными после начала фазы отметки, и объекты, на которые больше не ссылаются. 4. В конце фазы отметки сборщик мусора имеет полный список всех доступных объектов, включая те, которые были созданы или изменены во время фазы отметки. ![](Pasted%20image%2020231108154006.png) Красим все старые ссылки в серый. Красим новые объекты в серый. ## Работа с [барьерами](Барьеры%20в%20программировании.md) ![](Pasted%20image%2020231108154240.png) Если [Concurrent Collection](Concurrent%20Collection.md) не происходит, то ничего не происходит. Если происходит, то проваливаемся в следующую секцию ![](Pasted%20image%2020231108154403.png)