ScheduledThreadPoolExecutor
- 用来处理延时任务或定时任务
- 采用线程池执行任务,任务中出现异常时会自动处理,但任务会消失
API: - scheduleAtFixedRate(Runnable command,long initialDelay,long period,TimeUnit unit):在延迟initialDelay后,每隔period执行一次
- scheduleWithFixedDelay(Runnable command,long initialDelay,long delay,TimeUnit unit):在延迟initialDelay后,任务执行完之后delay再执行一次任务。
Timer
- 单线程任务中出现异常会抛出异常,可能出现因为任务执行时间过长出现相互阻塞的情况,不推荐使用。