线程池在业务中的实践

文章目录

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

1. 业务背景

  • 场景一: 快速响应用户请求
    场景描述:比如说⽤户要查看⼀个商品的信息,那么我们需要将商品维度的⼀系列信息如商品的价格优惠库存图⽚等等聚合起来,展示给⽤户。
    分析:从用户角度来看,要求响应越快越还,但其实这些面向用户功能的聚合通常会伴随着调用之间的级联、,这种情况下使用线程池,将调用封装成任务并行执行,缩短总体的响应时间,这种场景其实最重要的就是获取最大的响应速度去满足用户,所以应该不设置队列去缓冲并发任务。调高corePoolSize和maxPoolSize去尽可能创造多的线程快速执行任务。
  • 场景二: 快速处理批量任务
    场景描述:比如说有一个离线的计算任务,计算量很大,像大型的统计报表,其实我们希望的是来快速生成报表
    分析:这种需要执行大量任务,我们希望任务执行的越快越好,使用多线程。但这种与响应速度的区别在于:这类场景任务量巨大,并不需要瞬时完成,而是关注如何使用有限的资源尽可能在单位时间处理更多的任务,也就是强调吞吐量。这种情况下应该设置队列去缓冲并发任务,调整合适的corePoolSize,这里,设置的线程数过多可能会引发线程上下文切换频繁,也会降低处理任务的速度,减低吞吐量。
相关推荐
玩代码1 天前
Java线程池原理概述
java·开发语言·线程池
佛祖让我来巡山3 天前
【线程池饱和策略】线程池饱和策略及自定义方法
线程池·java线程池·线程池饱和策略
百锦再18 天前
.NET多线程任务实现的几种方法及线程等待全面分析
android·.net·线程·线程池·并发·thread·task
A22741 个月前
自定义线程池 4.0
java·线程池
阿维的博客日记1 个月前
说一下Java里面线程池的拒绝策略
java·线程池·拒绝策略
寒山李白1 个月前
Java中高并发线程池的相关面试题详解
java·开发语言·面试·高并发·线程池·多线程
LUCIAZZZ1 个月前
HikariCP数据库连接池原理解析
java·jvm·数据库·spring·springboot·线程池·连接池
Rocky4011 个月前
javaEE->多线程:线程池
java·运维·服务器·线程池·多线程·定时器
啾啾Fun1 个月前
【Java实战】低侵入的线程池值传递
java·线程池·ttl
Maỿbe1 个月前
线程池的详细知识(含有工厂模式)
java·线程·线程池·工厂模式