Java Parallel Stream 源码深入解析(1)

本文深入解析Java Parallel Stream的实现机制,重点分析doInvoke(), tryComplete(), onCompletion()方法,以及如何合并子任务结果。内容涵盖任务执行、ForkJoinPool的工作原理、如何切分和合并任务。" 111739867,10296039,AirBnb用户分群分析:Python实战,"['python数据分析', '数据挖掘', '机器学习', 'K-means']
摘要由CSDN通过智能技术生成

复制代码

主要做了两件事:

  • 创建一个ReduceTask任务

  • 任务调用invoke()执行

创建的逻辑没有额外的操作,就是将三个参数赋值到实例变量中。

invoke()是ForkJoinTask的方法,方法这里主要关注invoke() 方法的逻辑:

/**

  • Commences performing this task, awaits its completion if

  • necessary, and returns its result, or throws an (unchecked)

  • {@code RuntimeException} or {@code Error} if the underlying

  • computation did so.

  • @return the computed result

*/

public final V invoke() {

int s;

//执行任务

if ((s = doInvoke() & DONE_MASK) != NORMAL)

reportException(s);

// 这里放回的是最终结果

return getRawResult();

}

复制代码

/**

  • Implementation for invoke, quietlyInvoke.

  • @return status upon completion

*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值