Java垃圾回收器(Garbage Collector)概述
1. 分类
1.1按线程数分
可以分为串行垃圾回收器和并行垃圾回收器。
-
串行垃圾回收器
串行回收指的是在同一时间段内只允许有一个CPU用于执行垃圾回收操作,此时工作线程被暂停,直至垃圾收集工作结束。
在诸如单CPU处理器或者较小的应用内存等硬件平台不是特别优越的场合,串行回收器的性能表现可以超过并行回收器和并发回收器。所以,串行回收默认被应用在客户端的Client模式下的JVM中。 -
并行垃圾回收器
并行回收可运用多个CPU同时执行垃圾回收,因此提升了应用的吞吐量,不过并行回收仍然与串行回收一样,采用独占式,使用了“Stop-the-world”
机制。
在并发能力比较强的CPU上,并行回收器产生的停顿时间要断于串行回收器。
知识点补充:并行和并发
并发:一个CPU(采用时间片)同时执行多个任务。
并行:多个CPU同时执行多个任务。
举例:你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明 你不支持并发也不支持并行。
你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发。
你吃饭吃到一半,电话来了,你一边