前言
最近研读《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