题目序号:(153, 154, 155, 10) 题目来源: 字节跳动,深信服,米哈游 频次: 3
答案1:(阿纪、)
- 对【40. go的GC(标记清理 -> 三色标记发 -> 混合写屏障)】补充: Q: 那如果用户在并发CMS期间改了引用,写屏障如何保证三色不变性: A: 插入屏障和删除屏障共同保证 插入写屏障:对象A引用C,A黑C白,会把C加入写屏障buf,最终flush到扫描队列。 删除屏障:被删除的对象,如果自身为灰色或者白色,那么被标记为灰色。(保护灰色到白色的路径不会断)。 插⼊写屏障和删除写屏障的短板: 插⼊写屏障:结束时需要STW来重新扫描栈,标记栈上引⽤的⽩⾊对象的存活; 删除写屏障:回收精度低,GC开始时STW扫描堆栈来记录初始快照,这个过程会保护开始时刻的所有存活对象。