mdz*_*dzh 8 java future futuretask
长话短说:我有一个Future对象的集合.其中一些已经在进行中,有些则没有.我迭代收集并调用future.cancel(false),根据文档,应该取消所有Future当前没有运行但应该允许所有其他人完成的.
我的问题是:Future在我打电话后,我怎么知道特定的什么时候完成future.cancel(false)?future.isDone()总是返回,true因为cancel()在此之前确实被调用,并且即使仍在运行,也future.get()总是抛出一个.CancellationExceptionFuture
有什么建议?
由于Future对待处理计算的未来结果进行建模,并且该结果不是来自取消的未来,因此合理的是Future您无法确定结果已被处理的计算何时完成,这是合理的。换句话说,您需要另一种范例来通过该方法实现您的目标。
如果您希望等待所有提交的任务完成,Executor Service API 直接支持的最接近的事情就是关闭整个 executor 服务并等待其终止。
如果上述内容不适合您的解决方案,那么我没有看到比某些自定义解决方案更好的方法,例如 的自定义实现Runnable,它会在侧面执行一些内务处理,以便您可以检查它何时完成运行。
| 归档时间: |
|
| 查看次数: |
2721 次 |
| 最近记录: |