每日一题 0507

Scroll Down

具体讲一下CMS流程
福哥答案2020-05-07:

福哥口诀法:C初并重清(初始标记、并发标记、重新标记、并发清除)

整个过程分为 4 个步骤,包括:
初始标记:仅仅只是标记一下 GCRoots 能直接关联到的对象,速度很快,需要停顿(STW-Stoptheworld)。
并发标记:从 GCRoot 开始对堆中对象进行可达性分析,找到存活对象,它在整个回收过程中耗时最长,不需要停顿。
重新标记:为了修正并发标记期间因用户程序继续运作而导致标记产生变动的那一部分对象的标记记录,需要停顿(STW)。这个阶段的停顿时间一般 会比初始标记阶段稍长一些,但远比并发标记的时间短。
并发清除:不需要停顿。