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