线程池在业务中的实践

文章目录

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

1. 业务背景

  • 场景一: 快速响应用户请求
    场景描述:比如说⽤户要查看⼀个商品的信息,那么我们需要将商品维度的⼀系列信息如商品的价格优惠库存图⽚等等聚合起来,展示给⽤户。
    分析:从用户角度来看,要求响应越快越还,但其实这些面向用户功能的聚合通常会伴随着调用之间的级联、,这种情况下使用线程池,将调用封装成任务并行执行,缩短总体的响应时间,这种场景其实最重要的就是获取最大的响应速度去满足用户,所以应该不设置队列去缓冲并发任务。调高corePoolSize和maxPoolSize去尽可能创造多的线程快速执行任务。
  • 场景二: 快速处理批量任务
    场景描述:比如说有一个离线的计算任务,计算量很大,像大型的统计报表,其实我们希望的是来快速生成报表
    分析:这种需要执行大量任务,我们希望任务执行的越快越好,使用多线程。但这种与响应速度的区别在于:这类场景任务量巨大,并不需要瞬时完成,而是关注如何使用有限的资源尽可能在单位时间处理更多的任务,也就是强调吞吐量。这种情况下应该设置队列去缓冲并发任务,调整合适的corePoolSize,这里,设置的线程数过多可能会引发线程上下文切换频繁,也会降低处理任务的速度,减低吞吐量。
相关推荐
阿冰冰呀7 天前
互联网大厂Java求职面试实录:谢飞机的“水货”之路
java·mybatis·dubbo·springboot·线程池·多线程·hashmap
YYYing.9 天前
【C++项目之高并发内存池 (二)】整体框架设计与ThreadCache的初步实现
笔记·高并发·线程池·c/c++
__土块__11 天前
AI 任务调度器频繁超时:一次从线程争用到执行隔离的工程复盘
线程池·可观测性·任务调度·系统稳定性·生产故障·ai工程·执行隔离
小辉同志12 天前
Epoll+线程池
开发语言·c++·c·线程池·epoll
Zzzzmo_13 天前
【JavaEE】多线程04—线程池/定时器
java·线程池·定时器·javaee
W230357657314 天前
【改进版】C++ 固定线程池实现:基于调用者运行的拒绝策略优化
开发语言·c++·线程池
洛水水17 天前
# 线程池详解:从原理到实现
c++·线程池
__土块__17 天前
Java 大厂一面模拟:从线程池拒绝策略到分布式锁选型的连环压问
线程池·分布式锁·redisson·java面试·拒绝策略·大厂一面·kafka幂等
UrSpecial19 天前
从零实现C++轻量线程池
c++·线程池
__土块__20 天前
Java 大厂一面模拟:从线程本地存储到分库分表路由的连环拷问
kafka·线程池·分库分表·java面试·threadlocal·缓存一致性·大厂一面