RxJava-スケジューラー
スケジューラーは、マルチスレッド環境でObservableオペレーターと連携するために使用されます。
によると Reactive、Schedulerは、オペレーターのチェーンがさまざまなスレッドにどのように適用されるかをスケジュールするために使用されます。
デフォルトでは、Observableとそれに適用する演算子のチェーンがその作業を行い、Subscribeメソッドが呼び出されたのと同じスレッドでオブザーバーに通知します。SubscribeOnオペレーターは、Observableが動作する別のスケジューラーを指定することにより、この動作を変更します。ObserveOnオペレーターは、Observableがオブザーバーに通知を送信するために使用する別のスケジューラーを指定します。
RxJavaで使用できるスケジューラには次のタイプがあります-
シニア番号 | スケジューラと説明 |
---|---|
1 | Schedulers.computation() 計算作業用のスケジューラーを作成して返します。スケジュールされるスレッドの数は、システムに存在するCPUによって異なります。CPUごとに1つのスレッドが許可されます。イベントループまたはコールバック操作に最適です。 |
2 | Schedulers.io() IOバウンド作業用のスケジューラーを作成して返します。スレッドプールは必要に応じて拡張できます。 |
3 | Schedulers.newThread() 作業単位ごとに新しいスレッドを作成するスケジューラーを作成して返します。 |
4 | Schedulers.trampoline() 現在の作業が完了した後に実行される現在のスレッドでの作業をキューに入れるスケジューラーを作成して返します。 |
4 | Schedulers.from(java.util.concurrent.Executor executor) エグゼキュータを新しいスケジューラインスタンスに変換します。 |