2017-07-03 84 views
0

我正在阅读RxJava的文档,并且遇到了这个我不太了解的文档。 https://github.com/ReactiveX/RxJava这是什么意思,“RxJava中的流是自然顺序的...”

流入RxJava在本质上分裂顺序进入处理阶段 是可以相互并行运行:

Flowable.range(1, 10) 
    .observeOn(Schedulers.computation()) 
    .map(v -> v * v) 
    .blockingSubscribe(System.out::println); 

一无所知的代码块似乎将同时运行到我。

+0

您是否继续阅读?下一段说明你如何平行。 – jonrsharpe

+0

'System.out :: println'在计算“v * v”的同时在主线程上运行。另一个名字是流水线。 – akarnokd

+0

@jonrsharpe我一直在读,但我的问题归结为我的最后一句话。引用的部分似乎并不会同时运行(至少对我而言)......但它表示“可能会同时运行:” – EGHDK

回答

0

在计算(工作者)线程上对数字从1到10进行平方,并消耗“主”线程上的结果。 lambda v -> v * v不会并行运行,而v + 1 * v + 1(范围1-10)正在主线程上早期v * v运行的计算线程System.out::println上执行。

+0

它在主线程上如何消耗?它不会在计算线程上吗? – EGHDK