首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ExecutorService:如何检查我的Callable是否正在执行?

ExecutorService:如何检查我的Callable是否正在执行?
EN

Stack Overflow用户
提问于 2011-11-10 18:34:24
回答 3查看 3.8K关注 0票数 4

我使用ExecutorService处理来自多个线程的任务请求,并使用从ExecutorService#submit()返回的Future来跟踪任务的进度。

我想删除请求,并在超时后给请求者一个反馈,如果他们的请求还没有被处理。

因此,我想知道当前是否正在处理任务请求,如果正在处理,我将等待它完成,否则我将取消它并向请求者提供反馈。

任何帮助和提示都将不胜感激。谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-09 08:22:30

要回答这个问题已经太晚了,但是为什么你不定义你的任务,让它具有某种不稳定的"isStarted“标志呢?然后,您可以在catch子句中查询标志。

票数 1
EN

Stack Overflow用户

发布于 2011-11-10 19:07:33

如果您使用Future.cancel(false),它将允许任务在已经启动的情况下运行到完成。即使你使用cancel(true),它也可能会这样做,除非talk执行了一个可中断的操作,或者你检查了中断标志。

我怀疑您不需要知道任务是否已经开始。即使您使用此方法,也有可能任务在您检查时尚未启动,但在您尝试取消它时已启动。

票数 2
EN

Stack Overflow用户

发布于 2014-07-04 16:04:14

我知道这是一个老问题,但是使用Future.isDone()又如何呢?

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

https://stackoverflow.com/questions/8078161

复制
相关文章

相似问题

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