![新一代垃圾回收器ZGC设计与实现](https://wfqqreader-1252317822.image.myqcloud.com/cover/940/26307940/b_26307940.jpg)
上QQ阅读APP看书,第一时间看更新
1.2.3 CMS
整个回收期间划分成多个阶段:初始标记、并发标记、重新标记、并发清除等。在初始标记和重新标记阶段需要暂停应用程序线程,在并发标记和并发清除期间工作线程可以和应用程序并发运行。这个算法通常适用于老生代,新生代可以采用并行复制回收,也可以采用串行复制算法。CMS垃圾回收的执行过程如图1-3所示。
![](https://epubservercos.yuewen.com/B6215A/14751872305176206/epubprivate/OEBPS/Images/Figure-0010-0004.jpg?sign=1739261297-XZi3aYnIrXb5FGzNkvER1ZSzs2WVL9I7-0-df2aa5f638437f2729c807463b391b6c)
图1-3 CMS垃圾回收
同样,在老生代回收时,因为是并发执行,如果在分配内存时发现内存不足,则需要进行FGC,也需要STW并对整个内存进行串行回收。