如下图所示,创建真正的任务调度。核心代码:
executor.scheduleAtFixedRate( )。
为什么用scheduleAtFixedRate呢?
scheduleAtFixedRate(TimerTask task, long delay,long period) 安排指定的任务在指定的延迟后开始进行重复的固定速率执行。schedule(TimerTask task,Date firstTime,
long period)是用重复固定延迟触发的,每次执行之后每次执行时间为上一次任务结束起向后推一个时间间隔,即每次执行时间
为:initialDelay,
initialDelay+executeTime+period,initialDelay+2*executeTime+2* period。
一句话就是schedule是每次执行后,然后再间隔period。而scheduleAtFixedRate是不算上执行时间的,这样就没有误差。