Jvm中的垃圾回收器
在jvm中,实现了多种垃圾收集器,
包括: 1.串行垃圾收集器 2.并行垃圾收集器 3.CMS(并发)垃圾收集器 4.G1垃圾收集器
1.串行垃圾回收器
效率低,使用较少
2.并行垃圾回收器
3.并发垃圾回收器
主要针对老年代进行垃圾回收
说明:
1.初始标记时,就是采用可达性分析算法进行标记,此时会阻塞其他线程(阻塞时间很短,不会影响用户体验)此时,只标记了GC Roots和GC Roots直接关联的对象A
2.并发标记,此时,不会阻塞线程,会从A开始找到所有存活的对象:A、B、C、D、GC Roots。
3.重新标记,为什么这里还要重新标记一遍呢?这是因为当时并发标记的时候,其他线程还在执行,如果这期间,比如说:之前没有被引用的X,在此期间被A引用了,这里重新标记的时候,就会把X标记为存活对象
注:重新标记的时候,所有线程共同参与,就不会出现新的引用!
4.并发清理,其他线程照常执行。
小结