私はいくつかの非常に単純なコードを持っており、一連の文字列を読む&フィルタを適用します。私はフィルタが複数のスレッドで動作することを期待していました。ログからRxJavaの並列処理 - フィルタ
Iterable<String> outputs = Observable
.from(Files.readLines(new File("E:\\SAMA\\Test\\ImageNetBullets.txt"), Charset.forName("utf-8")))
.take(20).subscribeOn(Schedulers.from(threadPoolExecutor)).filter(str -> isURLOK(str))
.toBlocking().toIterable();
、Filterメソッドは、ちょうど1スレッドで実行されているようだ。私はそれをスピードアップするにはどうすればよい
In Thread pool-1-thread-1
In Thread pool-1-thread-1
http://farm2.static.flickr.com/1258/1479683334_3ff920d217.jpg
In Thread pool-1-thread-1
In Thread pool-1-thread-1
を?
RxJavaは本質的にシーケンシャルなので、例えばflatMapを使って手動でパラレルを追加する必要があります。 – akarnokd
そのステートメントは意味を成しません - ReactiveXのタイトルにも "非同期"が含まれています。実際、シーケンシャル、シングルスレッド実行と非同期、パラレル - 明らかに 'Observable'の**を選択することは**簡単です** [イントロで見る](https://reactivex.io/ intro.html)、さらに。上記の例は、連続して読み込まれるストリームの意味での反復的な順次実行を示しています.RxJavaは、データセット全体を多くのObservableに分割し、単一の並列オブジェクトに戻すことを可能にします。 – specializt