CMS解决三色标记法漏标问题

2022-10-18  本文已影响0人  糯米团子123
  1. 通常采用方案:发生A对象(黑色集合)指向D对象(白色集合)时候,直接将D对象标灰(业务线程运行,一旦发生黑色标记指向白色标记,则将白色标记置灰)


    CMS漏标解决
  2. 上述解决方案产生问题
    2.1 垃圾回收线程m1 正在标记对象A,标记完成A对象的属性1,正在标记对象A的属性2,此时A为灰色。
    2.2 m1线程暂停,业务线程m2运行,m2把属性1指向白色对象D,m2暂停,m1运行
    2.3 m1继续标记对象A的属性2,标记完成,A变为黑色,此时D对象仍是白色,漏标。

  3. CMS最终解决方案
    在最后阶段remark(重新标记)。重新扫描一遍(STW)

上一篇 下一篇

猜你喜欢

热点阅读