顾名思义newScheduleThreadPool是一个定时任务的线程池,这个线程池可以定时一定周期去执行任务,也可以实现延迟多久去执行任务一次。
newScheduleThreadPool方法实现展示
- 基于查看这个方法不难发现,该方法是基于ScheduledThreadPoolExecutor来进行构建的,创建的是ScheduledThreadPoolExecutor线程池。
查看ScheduledThreadPoolExecutor线程池
- 查看方法体内部还是正常的线程池创建,不过在此基础之上增加了定时任务的功能。实现原理是基于DelayedWorkQueue来进行延迟实现。周期性执行也就是通过任务执行完毕之后,再次丢到阻塞队列中进行实现。
- ScheduledThreadPoolExecutor是通过ScheduledThreadPoolExecutor线程池去完成。本质上还是正常的线程池创建方式。
- 从这里可以看出也就是在基础之上实现了定时任务的功能。原理上显而易见是通过DelayedWorkQueue队列来进行实现。线程任务执行完毕之后被放回到阻塞队列中。
使用代码实操演示