首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何阻止Executors.newSingleThreadScheduledExecutor

如何阻止Executors.newSingleThreadScheduledExecutor
EN

Stack Overflow用户
提问于 2016-09-03 12:25:08
回答 1查看 3.1K关注 0票数 2

我有:

代码语言:javascript
复制
private final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();

运行一个可运行的任务:

代码语言:javascript
复制
executorService.scheduleAtFixedRate(task, 0, 1, TimeUnit.SECONDS);

但是executorService似乎没有一个cancel方法(wtf,为什么?),关闭它不是一个选项,我正在做一些相当简单的事情,所以使用Executors.newScheduledThreadPool (它有cancel())有点过分了。

是否有适当停止执行任务的方法?

PS:我搜索之前,我问,我真的不认为这个hack是正确的方式。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-03 12:30:26

executorService.scheduleAtFixedRate(task, 0, 1, TimeUnit.SECONDS);返回一个ScheduledFuture<V>,其中有一个cancel(boolean)方法。取消它的正确方法是在将来取消它。

但是,我认为这不能在任务执行时停止,只会阻止将来的执行。使用布尔标志需要任务知道Thread.isInterrupted()系统。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39306855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档