JVM的GC并发、并行

本文深入解析了并发与并行的概念及其在Java垃圾回收器中的实现方式,对比了串行、并行及并发收集器的特点,如Serial、ParNew、ParallelScavenge、ParallelOld和CMS收集器,并介绍了G1收集器如何优化StopTheWorld时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

英文单词

并发:Concurrency 并行:Parallelism

并发

一个并发程序是具备处理多个任务的能力。并发并不需要有多个CPU,单个CPU通过时间片的方式,不同时间片处理不同任务,可以让程序“看起来”是都在执行的。

并行

并行表示在同一个时间点,有多个任务都在进行当中。并行是需要多个CPU才可以完成的。如果说每一个CPU都在运行一个程序,那么4个CPU就可以让4个程序“并行”运算。

Java垃圾回收器 串行处理器

  1. Serial收集器: 
    用于新生代,单线程并Stop The World 
    一般用于单CPU的应用,设置-XX:+UseSerialGC,可以保证较高的吞吐率
  2. SerialOld收集器: 
    用于老年代,单线程。

并行收集器

  1. ParNew收集器 
    用于新生代,用户响应时间比较短,适用于server。是CMS默认的新生代收集器
  2. Parallel Scavenge收集器 
    用于新生代,吞吐量比较高,但是用户响应时间比较长,适用于后台。
  3. Parallel Old收集器 
    用于老年代,响应时间较长,吞吐量较大。适用于后台,和Parallel Scavenge配合使用。

并发收集器

  1. CMS(Concurrent Mark Sweep),可以对老年代进行并行的垃圾回收。值得注意的是,jdk6以前,如果老年代使用了CMS,那么新生代只能使用Serial或ParNew收集器。
  2. G1(Garbage First),并行和并发,降低Stop The World的时间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值