java 定时任务
private ScheduledExecutorService scheduledExecutorService; scheduledExecutorService = Executors.newSingleThreadScheduledExecutor(); scheduledExecutorService.scheduleAtFixedRate(new Task(), 1, 4, TimeUnit.SECONDS);//4s一次 延迟1s task执行的一步任务 scheduledExecutorService.shutdown();//停止任务 new task 实现 runable接口; Timer 存在一些缺陷: 1 , Timer 对调度的支持是基于绝对时间 , 而不是相对时间的,由此任务对系统时钟的改变是敏感的 ;ScheduledThreadExecutor 只支持相对时间。 2 ,如果 TimerTask 抛出未检查的异常, Timer 将会产生无法预料的行为。 Timer 线程并不捕获异常,所以 TimerTask 抛出的未检查的异常会终止 timer 线程。此时,已经被安排但尚未执行的 TimerTask 永远不会再执行了,新的任务也不能被调度了。 来源: oschina 链接: https://my.oschina.net/u/1538508/blog