CMS垃圾回收器的工作流程是什么?

提问者:帅平 问题分类:面试刷题
CMS垃圾回收器的工作流程是什么?
1 个回答
与酒
与酒
1、「初始标记」会标记GCRoots「直接关联」的对象以及「年轻代」指向「老年代」的对象
2、「初始标记」这个过程是会发生Stop The World的。但这个阶段的速度算是很快的,因为没有「向下追溯」(只标记一层)
3、在「初始标记」完了之后,就进入了「并发标记」阶段啦
4、「并发标记」这个过程是不会停止用户线程的(不会发生 Stop The World)。这一阶段主要是从GC Roots向下「追溯」,标记所有可达的对象。
5、「并发标记」在GC的角度而言,是比较耗费时间的(需要追溯)
6、「并发标记」这个阶段完成之后,就到了「并发预处理」阶段啦
7、「并发预处理」这个阶段主要想干的事情:希望能减少下一个阶段「重新标记」所消耗的时间
8、因为下一个阶段「重新标记」是需要Stop The World的
9、「并发标记」这个阶段由于用户线程是没有被挂起的,所以对象是有可能发生变化的
10、可能有些对象,从新生代晋升到了老年代。可能有些对象,直接分配到了老年代(大对象)。可能老年代或者新生代的对象引用发生了变化…
发布于:1年前 (2023-03-16) IP属地:四川省
我来回答