当前位置: 首页 > news >正文

【jvm】垃圾回收的并行和并发

目录

          • 1. 说明
          • 2. 并行(Parallel)
            • 2.1 定义
            • 2.2 特点
            • 2.3 示例
          • 3. 并发(Concurrent)
            • 3.1 定义
            • 3.2 特点
            • 3.3 示例
          • 4. 并行与并发的比较

1. 说明
  • 1.在JVM(Java虚拟机)的垃圾回收机制中,并行(Parallel)和并发(Concurrent)是两个重要的概念,它们描述了垃圾回收线程与用户线程之间的关系,以及垃圾回收过程中多线程的执行方式。
2. 并行(Parallel)
2.1 定义
  • 1.并行描述的是多条垃圾收集器线程之间的关系,指的是垃圾回收线程在执行垃圾回收任务时,会同时启动多个线程协同工作,以提高垃圾回收的效率。
2.2 特点
  • 1.多线程执行:并行垃圾回收器会使用多个CPU核心同时执行垃圾回收任务,加快垃圾回收的速度。
  • 2.用户线程暂停:在垃圾回收过程中,用户线程(即应用程序的工作线程)需要暂停执行,直到垃圾回收任务完成。这种暂停被称为“Stop-the-World”(STW)。
  • 3.适用场景:并行垃圾回收器适用于对吞吐量要求较高,而对延迟要求相对较低的应用场景,如后台计算任务。
2.3 示例
  • 1.Parallel Scavenge:一款并行的新生代垃圾回收器,关注吞吐量,适合在后台运算而不需要太多交互的任务。
  • 2.Parallel Old:Parallel Scavenge收集器的老年代版本,同样支持多线程并发收集,基于标记-整理算法实现。
3. 并发(Concurrent)
3.1 定义
  • 1.并发描述的是垃圾收集器线程与用户线程之间的关系,指的是垃圾回收线程与用户线程在同一时间段内可以同时运行,即垃圾回收线程在执行垃圾回收任务时,用户线程仍然可以继续执行。
3.2 特点
  • 1.多线程执行:并发垃圾回收器也会使用多个线程执行垃圾回收任务,但与并行垃圾回收器不同的是,它允许用户线程在垃圾回收过程中继续执行。
  • 2.减少停顿时间:由于用户线程不需要在垃圾回收过程中暂停,因此并发垃圾回收器能够显著减少应用程序的停顿时间,提高用户体验。
  • 3.资源占用:并发垃圾回收器需要占用一定的系统资源(如CPU时间、内存等)来执行垃圾回收任务,这可能会影响应用程序的处理能力。
  • 4.适用场景:并发垃圾回收器适用于对延迟要求较高,而对吞吐量要求相对较低的应用场景,如交互式应用程序。
3.3 示例
  • 1.CMS(Concurrent Mark Sweep):一种以获取最短回收停顿时间为目标的并发垃圾回收器,基于标记-清除算法实现。
  • 2.G1(Garbage First):一款面向服务端应用的垃圾收集器,结合了并行和并发的特点,旨在以极高概率满足GC停顿时间的同时,还兼具高吞吐量的性能特征。
4. 并行与并发的比较
并行(Parallel)并发(Concurrent)
描述关系多条垃圾收集器线程之间的关系垃圾收集器线程与用户线程之间的关系
多线程执行多线程同时执行垃圾回收任务多线程执行垃圾回收任务,用户线程继续执行
用户线程状态用户线程暂停执行(STW)用户线程继续执行
适用场景对吞吐量要求较高,对延迟要求相对较低的应用场景对延迟要求较高,对吞吐量要求相对较低的应用场景
资源占用主要占用CPU资源进行垃圾回收需要占用一定的系统资源(CPU、内存等)来执行垃圾回收任务
典型示例Parallel Scavenge、Parallel OldCMS、G1

相关文章:

  • 内核编程九:进程概述
  • Buffer overFolw---Kryo序列化出现缓冲区溢出的问题解决
  • Spring Cache 实战指南
  • 华为机试牛客刷题之HJ58 输入n个整数,输出其中最小的k个
  • 掌握 Postman:高级 GET 请求技术与响应分析
  • Ubuntu22.04美化MacOS主题
  • 什么是正文化
  • 【CSS3】完整修仙功法
  • WordPress 代码高亮插件 io code highlight
  • 【C++】string类字符串详细解析
  • SCI英文论文Accepted后的第一步——Rights and Access
  • Jenkins 集成 SonarQube 代码静态检查使用说明
  • 【Rust】一文掌握 Rust 的详细用法(Rust 备忘清单)
  • python打包辅助工具
  • 【视频】OpenCV:色彩空间转换、灰度转伪彩
  • react自定义hook
  • 排序复习_代码纯享
  • batman-adv 优化:基于信号强度(RSSI)选择链路
  • SpringCloud配置中心:Config Server与配置刷新机制
  • 使用 Python 和 python-pptx 构建 Markdown 到 PowerPoint 转换器
  • 伊朗最大港口爆炸:26公里外都能听到,超七百人受伤,原因指向化学品储存
  • 可实时追踪血液中单个细胞的穿戴医疗设备问世
  • 国际观察|伦敦会谈“降级”凸显美国乌克兰政策窘境
  • 《国语汇校集注》:以1900余条注解,揭示隐微,提供思考
  • 秦洪看盘|热点凌乱难抑多头雄心
  • 外交部:伊朗外长阿拉格奇将于4月23日访问中国