目录
- 引言
- 线程池使用场景
- 线程池的池化技术
- 线程池的创建
- ThreadPoolExecutor中重要的几个参数详解
- 阿里巴巴开发规范之线程池
- 关闭线程池
- 线程池实现线程复用的原理
- Springboot中使用线程池
- Callable和Runnable
- Future和FutureTask
- 线程池的优化
- 基于spring体系的业务中正确地关闭线程池
- java web项目中慎用Executors以及非守护线程
- 总结
- 参看文档
引言
-
我当时调用连薪商户-服务商接口,该接口的目的是:
- 在客户发薪成功的回调接口中,去调用连薪服务商回单下载接口,但是连薪的付款成功和下载之间有3-5秒的延迟,这里睡眠了5秒之后,开启
线程池
去下载回单。
- 在客户发薪成功的回调接口中,去调用连薪服务商回单下载接口,但是连薪的付款成功和下载之间有3-5秒的延迟,这里睡眠了5秒之后,开启
除了我自己在开发中使用到的场景,因而,线程池其他使用场景使用场景
线程池使用场景
加快请求响应(响应时间优先)
假如,用户在饿了么上查看某商家外卖,需要聚合商品库存、店家、价格、红包优惠等等信息返回给用户,接口逻辑涉及到聚合、级联等查询,从这个角度来看接口返回越快越好,那么就可以使用多线程方式,把聚合/级联查询等任务采用并行方式执行,从而缩短接口响应时间。
这种场景下使用线程池的目的就是为了缩短响应时间,往往不去设置队列去缓冲并发的请求,而是会适当调高corePoolSize和maxPoolSize
去尽可能的创造线程来执行任务。
加快处理大任务(吞吐量优先)
假如,业务中台每10分钟就调用接口统计