/*分叉指定集合 tasks 中的所有任务*/
public static <T extends ForkJoinTask<?>> Collection<T> invokeAll(Collection<T>tasks{
/*类型验证*/
if (!(tasks instanceof RandomAccess) || !(tasks instanceof List<?>)) {
/*包含此集合中所有元素的数组*/
invokeAll(tasks.toArray(new ForkJoinTask<?>[tasks.size()]));
return tasks;
}
/*集合类型强转*/
@SuppressWarnings("unchecked")
List<? extends ForkJoinTask<?>> ts =(List<? extends ForkJoinTask<?>>) tasks;
/*定义了一个可供抛出的异常*/
Throwable ex = null;
/*开始从 tasks 中拿具体的任务*/
int last = ts.size() - 1;
/*遍历 。。。*/
for (int i = last; i >= 0; --i) {
/*把集合中的任务强制转换为 ForkJoinTask*/
ForkJoinTask<?> t = ts.get(i);
if (t == null) {
/*任务为空需要抛出异常*/
if (ex == null) ex
FockJoinTask 中 invokeAll方法
最新推荐文章于 2022-06-21 23:30:54 发布