Serial收集器
Serial 是一种新生代的收集器。顾名思义“serial 串行”,它是一种单线程工作的收集器,它的“单线程”并不仅仅指的只有一个处理器或一个线程来实现垃圾的收集工作,更重要的是他在垃圾收集的过程中会暂停所有的用户线程(STW),直到它收集结束。
Serial/Serial Old收集器运行示意图:(Serial Old 收集器是Serial 的老年代版本,后面会提到)
Serial 新生代收集器它采用的是标记-复制的算法,并且在垃圾收集的时候会进行STW,暂停所有的用户线程。
ParNew收集器
ParNew收集器实质上是Serial收集器的多线程并行版本,可以同时使用多条线程进行并行垃圾收集,除此之外,与Serial 收集器相比并没有太多的创新之处。
ParNew/Serial Old收集器运行示意图:
和Serial 收集器一样,也采用的是标记-复制算法进行新生代的垃圾收集。
注意:ParNew收集器在单核心处理器的环境中绝对不会有比Serial 收集器更好的效果(存在线程的上下文切换)
Parallel Scavenge 收集器
Parallel Scavenge 收集器也是一款新生代的收集器,同样是基于标记-复制算法实现,也是能够并行收集的多线程收集器,那它相对于ParNew 收集器有什么特别之处呢&