generated at
Concurrent Mark Sweep GC

並行マークスイープ
三色マーキング(三色抽象化(tricolour abstraction)とおなじか?)
マーキング中に新しいオブジェクトが作られることへの対策
マークされたオブジェクト(黒), マークスタック(灰),残りのオブジェクト(白)
手順
1. ルートオブジェクトのすべてをマークスタックに配置
2. マークされると黒にする
3. ↑これで辿られた子オブジェクトはマークスタックに入る(白から灰になる)
4. マークスタックがなくなると終わり
GC中にオブジェクトが追加されると、黒の中にそれを参照しているオブジェクトがあれば、その黒はいったん灰に戻る。
その後、上の手順を繰り返せば、新たに追加されたオブジェクトも3番目の手順でちゃんと黒になれる


使ってる言語