【发布时间】:2017-01-11 10:09:28
【问题描述】:
我有:
private final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
运行一个可运行的任务:
executorService.scheduleAtFixedRate(task, 0, 1, TimeUnit.SECONDS);
但似乎executorService 没有取消方法(wtf,为什么?),关闭它不是一个选项,我正在做一些相当简单的事情,所以使用Executors.newScheduledThreadPool(确实有@ 987654326@) 有点矫枉过正。
有没有办法正确停止任务的执行?
PS:我问之前搜索过,我真的不认为这个hack是正确的方法。
【问题讨论】:
-
您正在寻找
shutDown*()方法之一。 -
我只有来自
executorService的shutdownNow和shutDown,两者都会阻止未来的任务,但我想要未来的任务。 @fge
标签: java multithreading java-8 scheduled-tasks