线程池在业务中的实践

文章目录

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

1. 业务背景

  • 场景一: 快速响应用户请求
    场景描述:比如说⽤户要查看⼀个商品的信息,那么我们需要将商品维度的⼀系列信息如商品的价格优惠库存图⽚等等聚合起来,展示给⽤户。
    分析:从用户角度来看,要求响应越快越还,但其实这些面向用户功能的聚合通常会伴随着调用之间的级联、,这种情况下使用线程池,将调用封装成任务并行执行,缩短总体的响应时间,这种场景其实最重要的就是获取最大的响应速度去满足用户,所以应该不设置队列去缓冲并发任务。调高corePoolSize和maxPoolSize去尽可能创造多的线程快速执行任务。
  • 场景二: 快速处理批量任务
    场景描述:比如说有一个离线的计算任务,计算量很大,像大型的统计报表,其实我们希望的是来快速生成报表
    分析:这种需要执行大量任务,我们希望任务执行的越快越好,使用多线程。但这种与响应速度的区别在于:这类场景任务量巨大,并不需要瞬时完成,而是关注如何使用有限的资源尽可能在单位时间处理更多的任务,也就是强调吞吐量。这种情况下应该设置队列去缓冲并发任务,调整合适的corePoolSize,这里,设置的线程数过多可能会引发线程上下文切换频繁,也会降低处理任务的速度,减低吞吐量。
相关推荐
__土块__18 小时前
Java 大厂一面模拟:从线程中断到缓存穿透的分布式链路拷问
线程池·缓存穿透·线程中断·java面试·布隆过滤器·消息幂等·大厂一面
是娇娇公主~3 天前
线程池:工作窃取线程池WorkingStealingPool
c++·线程池
是娇娇公主~3 天前
线程池:缓存线程池CachedThreadPool
c++·线程池
都说名字长不会被发现5 天前
Spring 线程池最佳实践:如何优雅管理多线程任务
java·spring·线程池·并发编程
__土块__9 天前
一次支付清结算系统线程池故障复盘:从任务积压到异步解耦的架构演进
java·消息队列·rocketmq·线程池·支付系统·故障复盘·异步架构
消失的旧时光-19439 天前
C++ 网络服务端主线:从线程池到 Reactor 的完整路线图
开发语言·网络·c++·线程池·并发
红云梦13 天前
互联网三高-高性能之线程池与连接池调优
java·线程池·连接池·池化技术
十年编程老舅13 天前
Linux 多线程高并发编程:读写锁的核心原理与底层实现
linux·c++·linux内核·高并发·线程池·多线程·多进程
weisian15119 天前
Java并发编程--19-ThreadPoolExecutor七参数详解:拒绝Executors,手动掌控线程池
java·线程池·threadpool·七大参数
我真会写代码20 天前
线程池高频面试题(整理版)
java·线程池