java 定时任务

private ScheduledExecutorService scheduledExecutorService;
scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
scheduledExecutorService.scheduleAtFixedRate(new Task(), 1, 4, TimeUnit.SECONDS);//4s一次 延迟1s task执行的一步任务
scheduledExecutorService.shutdown();//中止任务

 new task 实现 runable接口;java

Timer存在一些缺陷:spa

1Timer对调度的支持是基于绝对时间,而不是相对时间的,由此任务对系统时钟的改变是敏感的;ScheduledThreadExecutor只支持相对时间。 线程

2,若是TimerTask抛出未检查的异常,Timer将会产生没法预料的行为。Timer线程并不捕获异常,因此 TimerTask抛出的未检查的异常会终止timer线程。此时,已经被安排但还没有执行的TimerTask永远不会再执行了,新的任务也不能被调度了。 code

相关文章
相关标签/搜索