浅析项目实践接触到的java并发线程池应用场景

本文探讨了《java并发编程之美》中线程池的应用,重点分析了ScheduledThreadPoolExecutor在定时任务和批量查询数据集场景中的使用。首先,详细介绍了ScheduledThreadPoolExecutor的三种执行模式,与Timer的区别,以及如何根据业务需求调整线程池参数。其次,讨论了Spring的ThreadPoolTaskExecutor,包括其与JUC ThreadPoolExecutor的区别和应用场景,以及如何通过装饰器实现任务监控和异常处理。最后,总结了线程池参数设计的思考,并分享了个人对IO密集型和CPU密集型任务线程数计算的见解。
摘要由CSDN通过智能技术生成


前言

最近研读《java并发编程之美》这本书8、9、11章关于线程池的部分,有很多新的收获,在此想结合项目经历,总结分析一下实践中对于线程池的应用场景。


场景一、营销场景-门店活动信息定时校验

定时执行的数据核对任务需要异步线程池处理,实现定时任务有很多种方式,比如xxl-job、scheduleX等。但是要和ScheduledThreadPoolExecutor的固定频率执行模式区分开,ScheduledThreadPoolExecutor支持三种模式:
在这里插入图片描述
chedule(Runnable command, long delay, TimeUnit unit)方法该方法的作用是提交一个延迟执行的任务,任务从提交时间算起延迟单位为unit的delay时间后开始执行。提交的任务不是周期性任务,任务只会执行一次,代码如下。
scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit)方法该方法的作用是,当任务执行完毕后,让其延迟固定时间后再次运行(fixed

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值