CMS(concurrent mark sweep)在jdk1.5中曾经开始应用了,2004年9月30日,JDK1.5公布。CMS设计的指标就是获取最低进展工夫(stop the world进展工夫),它是基于标记-革除算法实现的。罕用的场景是互联网网站(对服务响应要求较高),它是一个老年代垃圾收集器,能够和Serial收集器,Parallel New收集器配合应用。当并行模式(concurrent mode failure)失败时CMS会进化成Serial Old.
CMS收集器的工作流程(步骤)是什么样的?
次要四个阶段
初始标记:只标记和GC Roots能直连的对象,速度快,会产生(stop the world)
并发标记:和利用线程并发执行,遍历初始标记阶段标记过的对象,标记这些对象的可达对象。
从新标记:因为并发标记是和利用线程是并发执行的,所以有些标记过的对象产生了变动。这个过程比初始标记用时长,然而比并发标记阶段用时短。会产生(stop the world)