This implementation of TaskExecutor is the most commonly used executor. It is based on JSE ScheduledThreadPoolExecutor.
It exposes bean style configuration of "corePoolSize", "maxPoolSize", "keepAliveSeconds", "queueCapacity" etc.
As seen in the left diagram, it also implements Spring's SchedulingTaskExecutor interface.
The interface SchedulingTaskExecutor is not delay/period based but rather exposes scheduling characteristics of a particular implementation. We will explore periodic scheduling executor (which is based on TaskScheduler interface) in the next tutorials.