如何在ExecutorService中删除所有正在运行和排队的任务,并向其中添加新任务?

问题描述 投票:0回答:1

如何删除ExecutorService中所有正在运行和排队的任务,并向其中添加新任务?

ExecutorService用来处理每一轮新任务。如果本轮未完成任务,请删除这些旧任务,并在下一轮中添加即将发布的新闻任务。 ExecutorService将在下一轮中重复使用,因此无法关闭ExecutorService。有人知道怎么做吗?

java executorservice
1个回答
0
投票

如何在ExecutorService中删除所有正在运行和排队的任务并向其中添加新任务?

添加很容易-只需拨打submit。另一方面,删除则比较麻烦-您可以致电shutdownNow。 Javadoc:

尝试停止所有正在执行的任务,暂停正在等待的任务的处理,并返回正在等待执行的任务的列表。

如果要进行更精细的控制,请不要使用ExecutorService。相反,请尝试实现ThreadPoolExecutorExecutorService。在ThreadPoolExecutor中,您可以直接访问Runnable的队列。

© www.soinside.com 2019 - 2024. All rights reserved.