Java并发:如何在处理过程中告诉哪个Future属于哪个Callable?

Meo*_*ode 5 java concurrency future callable executorservice

我有一组Callables和一个ExecutorService.当我调用所有时,我得到一个Future对象列表.如何在Future完成之前判断哪个Future对象映射到哪个Callable?我事后可以告诉因为

码:

 ExecutorService es = .....;

 Collection<Callables> uniqueCallables = .....;  // each Callable is unique!

 List<Future> futures = es.invokeAll(uniqueCallables);

 // TODO--find unique Future A which is the future for Callable A!
Run Code Online (Sandbox Code Playgroud)

nob*_*beh 10

基于Java引用,按照生成的顺序invokeAll(uniqueCallables)保留订单:List<Future>uniqueCallables.iterator()

返回:表示任务的Futures列表,其顺序与给定任务列表的迭代器生成的顺序相同,每个任务都已完成.