java 定时任务

帅比萌擦擦* 提交于 2021-01-16 07:42:25
private ScheduledExecutorService scheduledExecutorService;
scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
scheduledExecutorService.scheduleAtFixedRate(new Task(), 1, 4, TimeUnit.SECONDS);//4s一次 延迟1s task执行的一步任务
scheduledExecutorService.shutdown();//停止任务

 new task 实现 runable接口;

Timer存在一些缺陷:

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

2,如果TimerTask抛出未检查的异常,Timer将会产生无法预料的行为。Timer线程并不捕获异常,所以 TimerTask抛出的未检查的异常会终止timer线程。此时,已经被安排但尚未执行的TimerTask永远不会再执行了,新的任务也不能被调度了。 


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!