RxJava - 排程器



排程器用於多執行緒環境中處理可觀察物件的運算子。

根據 Reactive 文件,排程器用於排程運算子鏈在不同執行緒上的執行方式。

預設情況下,可觀察物件和你應用於它的運算子鏈將在呼叫 Subscribe 方法的同一執行緒上執行並通知其觀察者。SubscribeOn 運算子透過指定可觀察物件應在其上執行的不同調度器來更改此行為。ObserveOn 運算子指定可觀察物件用於向其觀察者傳送通知的不同調度器。

RxJava 中有以下幾種型別的排程器:

序號 排程器及描述
1

Schedulers.computation()

建立並返回一個用於計算工作的排程器。要排程的執行緒數量取決於系統中存在的 CPU 數量。每個 CPU 允許一個執行緒。最適合事件迴圈或回撥操作。

2

Schedulers.io()

建立並返回一個用於 IO 密集型工作的排程器。執行緒池可以根據需要擴充套件。

3

Schedulers.newThread()

建立並返回一個為每個工作單元建立一個新執行緒的排程器。

4

Schedulers.trampoline()

建立並返回一個將工作排隊到當前執行緒並在當前工作完成後執行的排程器。

4

Schedulers.from(java.util.concurrent.Executor executor)

將 Executor 轉換為新的排程器例項。

廣告