1

在我的 Callable 代码中,我使用信号将多个结束行为通知给另一个线程。Callable 对象在 Executor 中与 FutureTasks 一起排队。他们也可能在排队后被取消。

现在,我的问题是我依赖于至少正在启动的任务才能让我的信号正常工作,但是如果执行程序在有机会运行它之前被标记为已取消,它看起来只是跳过一个任务。

那么,有没有办法保证任务总是启动,并且在运行时总是被取消(通过 InterruptedException)。

另外,你能检查一个任务是否还没有开始但失败了?

4

1 回答 1

2

您可能可以继承 FutureTask 类并覆盖其done()方法来执行信号。根据文档,即使任务已被取消,也应该调用此方法。

于 2010-12-14T12:54:45.570 回答