繁体   English   中英

在Java中使用ThreadPoolExecutor时如何通过超时取消特定任务?

[英]How to cancel a particular task by timeout when using ThreadPoolExecutor in Java?

我在Java中使用ThreadPoolExecutor并行化项目处理。 每个项目处理都是一个单独的任务,我将其放在队列中供执行者处理。 不幸的是,某些任务可能花费太长时间,我希望能够取消此类任务并继续执行其他任务。 我不想等待关机方法及其超时(整个处理过程需要几天)。 我想要类似循环执行当前执行的任务,检查其运行时间并在超出限制时将其取消的操作。

当您向ThreadPoolExecutor提交任务时,它将返回Future对象。

在期货上使用get(long timeout,TimeUnit unit)方法,如果获得TimeoutException,则对它们调用cancel。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM