首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >停工()和shutdownNow()的混合

停工()和shutdownNow()的混合
EN

Stack Overflow用户
提问于 2016-03-14 15:09:37
回答 1查看 364关注 0票数 9

ScheduledExecutorServiceExecutorService停工()shutdownNow()继承了两个方法。它们之间的区别是:

shutdown启动有序关闭,其中以前提交的任务将被执行,但不会接受任何新任务。如果已经关闭,则调用没有其他效果。 shutdownNow尝试停止所有正在执行的任务,停止等待任务的处理,并返回等待执行的任务列表。

现在,我想停止等待任务的处理,而不想中断当前正在执行的任务。我不能中断线程,因为涉及到第三方库,并且它们不能很好地处理中断:-(但我需要取消排定任务,这些任务目前没有执行,因为大多数任务都在一个小时左右的时间内安排好。

处理这件事最好的方法是什么?我有什么选择?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-14 15:21:12

听起来,调用执行器上的setExecuteExistingDelayedTasksAfterShutdownPolicy(false)应该可以做到这一点:

设置是否执行现有延迟任务的策略,即使此执行器已关闭。在这种情况下,这些任务只会在shutdownNow上终止,或者在已经关闭时将策略设置为false之后终止。默认情况下,此值为true。

由于默认情况下它是true,所以将执行这些任务。如果将其设置为false,则不应该再执行它们。这不应与您引用的文档所引用的已提交任务混淆。当有一个自由工人的时候,他们只是在队列中等待执行。

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

https://stackoverflow.com/questions/35991183

复制
相关文章

相似问题

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