要求FutureTask在取消之前启动

时间:2010-12-14 12:43:06

标签: java multithreading concurrency futuretask

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

现在,我的问题是我依赖于至少为我的信号启动工作的任务,但看起来Executor只是在它有机会运行它之前被标记为已取消的任务。 p>

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

此外,您可以检查任务是否尚未启动但是失败了吗?

1 个答案:

答案 0 :(得分:2)

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