线程池在业务中的实践

文章目录

  • [1. 业务背景](#1. 业务背景)

1. 业务背景

  • 场景一: 快速响应用户请求
    场景描述:比如说⽤户要查看⼀个商品的信息,那么我们需要将商品维度的⼀系列信息如商品的价格优惠库存图⽚等等聚合起来,展示给⽤户。
    分析:从用户角度来看,要求响应越快越还,但其实这些面向用户功能的聚合通常会伴随着调用之间的级联、,这种情况下使用线程池,将调用封装成任务并行执行,缩短总体的响应时间,这种场景其实最重要的就是获取最大的响应速度去满足用户,所以应该不设置队列去缓冲并发任务。调高corePoolSize和maxPoolSize去尽可能创造多的线程快速执行任务。
  • 场景二: 快速处理批量任务
    场景描述:比如说有一个离线的计算任务,计算量很大,像大型的统计报表,其实我们希望的是来快速生成报表
    分析:这种需要执行大量任务,我们希望任务执行的越快越好,使用多线程。但这种与响应速度的区别在于:这类场景任务量巨大,并不需要瞬时完成,而是关注如何使用有限的资源尽可能在单位时间处理更多的任务,也就是强调吞吐量。这种情况下应该设置队列去缓冲并发任务,调整合适的corePoolSize,这里,设置的线程数过多可能会引发线程上下文切换频繁,也会降低处理任务的速度,减低吞吐量。
相关推荐
理想奋斗中4 天前
【并发编程 | 第七篇】深入学习线程池(一)
java·线程池·并发编程
代码洁癖症患者7 天前
玩转JUC - 如何优雅的异步处理任务
线程池·并发编程·异步任务处理
陌言不会python12 天前
谷粒微服务高级篇学习笔记整理---异步&线程池
笔记·学习·微服务·线程池·异步
ronshi14 天前
Spring Boot使用异步线程池
spring boot·线程池
每天敲200行代码16 天前
Linux 多线程-生产消费者模型&线程池&线程单例模式&其他
linux·c++·单例模式·线程池·生产消费者模型
郭源潮11 个月前
《 线程池项目:线程池背景知识与整体架构梳理》
c++·线程池·c++11·c++17
笨手笨脚の2 个月前
以 Tomcat 为例分析 Java 中的线程池
java·开发语言·tomcat·线程池·拒绝策略
小梁不秃捏2 个月前
JVM中的线程池详解:原理→实践
java·开发语言·jvm·线程池
机器视觉知识推荐、就业指导2 个月前
Qt多线程技术【线程池】:QRunnable 和 QThreadPool
c++·qt·线程池·多线程
暮色里de白雪檐2 个月前
Spring Boot 线程池自定义拒绝策略:解决任务堆积与丢失问题
异常处理·线程池·队列·阻塞队列·自定义拒绝策略