美文网首页Java
Stream的TerminalOp执行原理。

Stream的TerminalOp执行原理。

作者: 赵荆州 | 来源:发表于2019-05-29 09:46 被阅读17次

Stream在执行intermediate(例如 map、filter)操作时,会形成referencePipeline 双向链表。

TermianlOp执行时遍历链表:

for ( AbstractPipeline p=AbstractPipeline.this; p.depth > 0; p=p.previousStage) {
         sink = p.opWrapSink(p.previousStage.combinedFlags, sink);
}

执行StatelessOp 中Sink的OnWrapSink。
(通过Sink 中ChainedReference 翻转)

所以Stream中的元素是依次应用intermediate操作。并不是所有元素应用完第一个intermediate操作,在应用下一个。

PS:使用Stream时,首先会构建一个HEAD-源阶段(Stream()),然后经历StatelessOp-中间阶段(map、filter),最终通过TermianlOp(reduce等)

相关文章

  • Stream的TerminalOp执行原理。

    Stream在执行intermediate(例如 map、filter)操作时,会形成referencePipel...

  • JAVA8新特性: Stream-集合流操作

    Stream类全路径为:java.util.stream.Stream Stream简介 Stream原理 Str...

  • 8-20 JDK8的新特性;

    Stream 接口: Java.util.stream stream的操作可以串行执行或者并行执行 JAVA 8 ...

  • Stream SQL的执行原理与Flink的实现

    本文非常之长,但是文章内容深度极佳,深度剖析了Stream SQL的原理和在Flink中的实践。建议大家挑个时间认...

  • Java Stream 源码分析

    前言 Java 8 的 Stream 使得代码更加简洁易懂,本篇文章深入分析 Java Stream 的工作原理,...

  • Java Stream 源码分析

    前言 Java 8 的 Stream 使得代码更加简洁易懂,本篇文章深入分析 Java Stream 的工作原理,...

  • Java-2

    流 Stream stream深入解析- 最详细的幕后原理 几个关键概念 流来源有一种称为 Spliterator...

  • 并行度

    Flink程序的执行具有并行、分布式的特性。在执行过程中,一个流(stream)包含一个或多个分区(stream ...

  • Java8 Stream

    Stream 概述 Stream 是一个可以对序列中的每个元素执行流操作的一个元素序列 Stream 包含中间和最...

  • Stream原理研究

    几个概念 需要了解Stream、Pipeline、Stage、Sink几个概念。 Stream Stream就是一...

网友评论

    本文标题:Stream的TerminalOp执行原理。

    本文链接:https://www.haomeiwen.com/subject/ftcetctx.html