2017-07-03 3 views
0

私はRxJavaのドキュメントを読んでいます。 RxJavaでhttps://github.com/ReactiveX/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の数字を四捨五入し、「メイン」スレッドで結果を消費します。ラムダv -> v * vは並列には実行されませんが、v + 1 * v + 1(範囲1〜10)はメインスレッドの前のv * vで実行される計算スレッドSystem.out::printlnで実行されます。

+0

メインスレッドでどのように消費されますか?計算スレッド上にもないでしょうか? – EGHDK

関連する問題