2017-07-03 76 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