先安利一个我的回答,里面大致介绍了Hotspot JVM里的几款GC算法组合。
1. 辣么多组合到底哪些是stop the world呢?
答案:大部分都stw。
包括
1.1 Young GC类算法:Serial Young GC(DefNew)、Parallel Young GC、ParNew GC;
1.2 Full GC类算法:Serial Old GC、PS MarkSweep GC / Parallel Old GC、Full GC for CMS算法、Full GC for G1 GC算法;
1.3 G1 GC算法:Young GC/Mixed GC 是stw的;
2. CMS算法是怎么回事呢?
2.1 CMS(Old)GC算法只在初始标记(initial mark)和再标记(remark)阶段stw一下;
2.2 类似的,G1 GC算法在其标记阶段某几个时段是stop the world的,比如初始标记(initial mark)、再标记(remark)、清理(cleanup)阶段;