使用ScheduledExecutorService来替代Timer主要原因 1、Timer不支持多线程。全部挂在Timer下的任务都是单线程的,任务仅仅能串行运行。假设当中一个任务运行时间过长,会影响到其它任务的运行 2、Timer的线程不捕获异常。TimerTask假设抛出异常,那么Timer唯一的线程就会挂掉,这样挂在Timer下的全部任务都会无法继续运行。