实际开发什么场景用到线程池_线程池的具体业务场景分析

更新时间:2023-05-06 22:22:09 阅读: 评论:0

实际开发什么场景⽤到线程池_线程池的具体业务场景分析如今,通过线程池最⼤程度利⽤CPU的多核性能是⼗分常见的基础操作。与此同时线程池的优势是显⽽易见的,它可以降低系统资源消耗,提⾼系统响应速度,⽅便线程并发数的管控等等。那么线程池的实现是怎么样的呢?本⽂将带⼤家分析线程池的具体业务场景,现在让我们开始吧~
⼀、业务场景
快速响应⽤户请求是线程池⼗分常见的业务场景。具体来讲就是⽤户发起的实时请求,服务追求响应时间。⽐如说⽤户要查看⼀个商品的信息,那么我们需要将商品维度的⼀系列信息如商品的价格、优惠、库存、图⽚等等聚合起来,展⽰给⽤户。
除此之外,快速处理批量任务也是我们会遇到的业务场景。离线的⼤量计算任务,需要快速执⾏。⽐如说,统计某个报表,需要计算出全国各个门店中有哪些商品有某种属性,⽤于后续营销策略的分析,那么我们需要查询全国所有门店中的所有商品,并且记录具有某属性的商品,然后快速⽣成报表。
⼆、使⽤分析
针对快速响应⽤户请求的业务场景,我们应该从⽤户体验⾓度看,这个结果响应的越快越好,如果⼀个页⾯半天都刷不出,⽤户可能就放弃查看这个商品了。⽽⾯向⽤户的功能聚合通常⾮常复杂,伴随着调
⽤与调⽤之间的级联、多级级联等情况,业务开发同学往往会选择使⽤线程池这种简单的⽅式,将调⽤封装成任务并⾏的执⾏,缩短总体响应时间。另外,使⽤线程池也是有考量的,这种场景最重要的就是获取最⼤的响应速度去满⾜⽤户,所以应该不设置队列去缓冲并发任务,调⾼corePoolSize和maxPoolSize去尽可能创造多的线程快速执⾏任务。
⾄于快速处理批量任务,这种场景需要执⾏⼤量的任务,我们也会希望任务执⾏的越快越好。这种情况下,也应该使⽤多线程策略,并⾏计算。但与响应速度优先的场景区别在于,这类场景任务量巨⼤,并不需要瞬时的完成,⽽是关注如何使⽤有限的资源,尽可能在单位时间内处理更多的任务,也就是吞吐量优先的问题。所以应该设置队列去缓冲并发任务,调整合适的corePoolSize去设置处理任务的线程数。在这⾥,设置的线程数过多可能还会引发线程上下⽂切换频繁的问题,也会降低处理任务的速度,降低吞吐量。
三、结论与反思
线程池使⽤⾯临的核⼼的问题在于线程池的参数并不好配置。⼀⽅⾯线程池的运⾏机制不是很好理解,配置合理需要强依赖开发⼈员的个⼈经验和知识;另⼀⽅⾯,线程池执⾏的情况和任务类型相关性较⼤,IO密集型和CPU密集型的任务运⾏起来的情况差异⾮常⼤,这导致业界并没有⼀些成熟的经验策略帮助开发⼈员参考。

本文发布于:2023-05-06 22:22:09,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/98516.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:线程   任务   场景   需要
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图