线程池在业务中的实践

server/2024/9/24 0:15:29/

文章目录

  • 1. 业务背景

1. 业务背景

  • 场景一: 快速响应用户请求
    场景描述:比如说⽤户要查看⼀个商品的信息,那么我们需要将商品维度的⼀系列信息如商品的价格优惠库存图⽚等等聚合起来,展示给⽤户。
    分析:从用户角度来看,要求响应越快越还,但其实这些面向用户功能的聚合通常会伴随着调用之间的级联、,这种情况下使用线程池将调用封装成任务并行执行,缩短总体的响应时间,这种场景其实最重要的就是获取最大的响应速度去满足用户,所以应该不设置队列去缓冲并发任务。调高corePoolSize和maxPoolSize去尽可能创造多的线程快速执行任务。
  • 场景二: 快速处理批量任务
    场景描述:比如说有一个离线的计算任务计算量很大,像大型的统计报表,其实我们希望的是来快速生成报表
    分析:这种需要执行大量任务,我们希望任务执行的越快越好,使用多线程。但这种与响应速度的区别在于:这类场景任务量巨大,并不需要瞬时完成,而是关注如何使用有限的资源尽可能在单位时间处理更多的任务,也就是强调吞吐量。这种情况下应该设置队列去缓冲并发任务,调整合适的corePoolSize,这里,设置的线程数过多可能会引发线程上下文切换频繁,也会降低处理任务的速度,减低吞吐量。

http://www.ppmy.cn/server/45127.html

相关文章

闲话 .NET(3):.NET Framework 的缺点

前言 2016 年,微软正式推出 .NET Core 1.0,并在 2019 年全面停止 .NET Framework 的更新。 .NET Core 并不是 .NET Framework 的升级版,而是一个从头开始开发的全新平台,一个跟 .NET Framework 截然不同的开源技术框架。 微软为…

【CSharp】判断目录以及文件是否存在

【CSharp】判断目录以及文件是否存在 1.背景2.判断目录3.判断文件1.背景 我们在进行磁盘IO的时候进行需要判断目录、文件是否存在,根据判断结果再做进一步的操作。 其中判断目录是否存在,涉及Directory.Exists(String) 方法; 命名空间:System.IO 方法功能:确定给定路径是…

假象和谎言

原创 | 刘教链 隔夜BTC(比特币)徘徊在69k一线。5.25教链内参报告,《BTC ETF持仓即将超越中本聪》。ETH ETF的尘嚣逐渐散去,复归于平静。戏刚唱了个开头,结尾还留着悬念。4000刀之于ETH看来是个关键阻力位,最…

数据迁移测试经验分享

以下为作者观点: 数据迁移,是在保证新旧系统业务连续性的前提下,将数据从旧数据库迁移到新数据库的过程,测试前通过迁移策略和方案了解新旧系统数据如何重构与关联,测试过程需确保数据迁移的正确性,主要体…

oracle11g rac 修改spfile

今天一套环境,发现2个节点的spfile不一致,正好有停机时间就修改spfile配置 SYSorcl1> show parameter spfile NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ spfile …

基于CNN卷积神经网络的金融数据预测matlab仿真,对比BP,RBF,LSTM

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 反向传播网络(BP,多层感知器MLP) 4.2 径向基函数网络(RBF) 4.3 卷积神经网络(CNN) 4.4 长短期记忆网…

RFM模型-分析母婴类产品

1,场景描述 假设我们是某电商平台的数据分析师,负责分析母婴产品线的用户数据。母婴产品的购买行为具有一定的周期性和生命周期特征,如用户在不同怀孕阶段的需求不同,以及宝宝出生后的不同成长阶段需要不同的产品。 2&#xff0…

golang判断字符串是否base64编码的字符串 可准确判断是或否

非常简单的判断一个字符串是否base64编码的方法,就是使用正则base64自身的解码转码来判断,如果失败则一定不是base64编码,否则是base64编码: // 使用正则自身的解码转码来判断字符串是否是base64,可以判断一定不是。 f…