• RxJava设计原理解析<3>

    本文出自:【InTheWorld的博客】

        在上一篇blog中,我们主要讨论了一些关于map和flatMap实现方面的知识。但是flatMap远比map复杂,flatMap涉及了merge算子方面的东西。所以这篇博文将重点分析merge算子的实现原理。merge算子的功能是把多个Observable整合到一起,并创建一个新的Observable。听起来这个功能其实并不是很难理解,merge就像两江交汇一般,把各支流的水汇聚到一起。《Learning Reactive Programming》一书中有非常形象的配图。下图就描述了merge的功能:

    image

        从视觉上就能看得出来,merge与flatMap非常相似,而这也是flatMap底层使用merge实现的原因。一个例子让你明白flatMap的作用,代码如下。

         int threadCt = Runtime.getRuntime().availableProcessors()
    【查看更多】