鉴于此代码,
Collection<?> callables = ...
ExecutorService executorService = ...
List<Future<?>> futures = executorService.invokeAll(callables, TIMEOUT, TimeUnit.SECONDS);
我想知道哪callables
被取消(没有及时完成)。我知道我可以使用Future
查询每个.isCancelled()
,但这不会告诉我哪个Callable
被取消了。
一个解决方案是Future
实现toString()
方法,该方法委派给toString()
的基础Callable
。不幸的是,这还没有完成。
答案 0 :(得分:3)
我知道我可以使用.isCancelled()查询每个Future,但这并不能告诉我哪个Callable被取消了。
Future
的列表与创建它的Callable
列表的顺序相同。所以你可以这样跟踪。