digital-garden/knowledge/dev/java/gc/Snapshot at the beginning (SATB).md
2024-06-13 21:01:37 +03:00

32 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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)