【发布时间】:2015-12-08 14:12:46
【问题描述】:
我正在处理ThreadPoolExcutor。
我想知道在invokeAll 方法中,我是否可以确定输出(Future 对象)的顺序与输入(Callable 列表)的顺序相同。
List<Future<T>> invokeAll(List<Callable<T>> tasks)
【问题讨论】:
标签: java concurrency threadpoolexecutor
我正在处理ThreadPoolExcutor。
我想知道在invokeAll 方法中,我是否可以确定输出(Future 对象)的顺序与输入(Callable 列表)的顺序相同。
List<Future<T>> invokeAll(List<Callable<T>> tasks)
【问题讨论】:
标签: java concurrency threadpoolexecutor
保证返回的期货列表与您提供的列表迭代器具有相同的顺序。请注意,此方法仅在所有任务完成后返回。
引用invokeAll(tasks)Javadoc:
返回: 代表任务的 Futures 列表,其顺序与给定任务列表的迭代器生成的顺序相同,每个任务都已完成
【讨论】:
invokeAll 方法仅在所有任务完成后返回。
future.get()。你要么得到想要的结果,要么抓住ExecutionException。