JDK自带的构建线程池的方式之newScheduleThreadPool

顾名思义newScheduleThreadPool是一个定时任务的线程池,这个线程池可以定时一定周期去执行任务,也可以实现延迟多久去执行任务一次。

newScheduleThreadPool方法实现展示

  • 基于查看这个方法不难发现,该方法是基于ScheduledThreadPoolExecutor来进行构建的,创建的是ScheduledThreadPoolExecutor线程池。

JDK自带的构建线程池的方式之newScheduleThreadPool_第1张图片

查看ScheduledThreadPoolExecutor线程池

  • 查看方法体内部还是正常的线程池创建,不过在此基础之上增加了定时任务的功能。实现原理是基于DelayedWorkQueue来进行延迟实现。周期性执行也就是通过任务执行完毕之后,再次丢到阻塞队列中进行实现。
  • ScheduledThreadPoolExecutor是通过ScheduledThreadPoolExecutor线程池去完成。本质上还是正常的线程池创建方式。
    JDK自带的构建线程池的方式之newScheduleThreadPool_第2张图片
  • 从这里可以看出也就是在基础之上实现了定时任务的功能。原理上显而易见是通过DelayedWorkQueue队列来进行实现。线程任务执行完毕之后被放回到阻塞队列中。

JDK自带的构建线程池的方式之newScheduleThreadPool_第3张图片

使用代码实操演示

JDK自带的构建线程池的方式之newScheduleThreadPool_第4张图片
JDK自带的构建线程池的方式之newScheduleThreadPool_第5张图片

单例线程池的部分方法执行效果演示

JDK自带的构建线程池的方式之newScheduleThreadPool_第6张图片

你可能感兴趣的:(Java并发编程,java)