G1垃圾回收

 G1垃圾回收

Concurrent Mark and Sweep

首先进行很短的stw比正常垃圾回收机制短(初始标记),concurrent和用户代码同时并行的跑,用户代码跑着,我在清除着垃圾,但是这个代码是不准确的,用户在跑的时候会修改你堆的状态,需要一个很短的重新标记,用很多个线程把这个状态变成最新的,我们知道谁是垃圾后用一个和用户线程并发的concurrent sweep 线程进行清理