public interface ScheduledExecutorService extends ExecutorService
- scheduleAtFixedRate固定频率
- scheduleWithFixedDelay固定间隔
提交执行:Executor.execute(Runnable)和 ExecutorService 的submit,默认立即执行
日期与间隔间转化:
schedule(task, date.getTime() - System.currentTimeMillis(), TimeUnit.MILLISECONDS)
1 | // 一小时内,10秒后开始,每隔10秒响一次 |
与Timer区别是:
Timer内部只有一个线程,若崩溃则整个任务崩溃。
ScheduledExcutorService可以利用线程池保证持续运行。且在多个任务并行时,线程池方案更加高效。