Junior — Middle
Aké mechanizmy sa v RxJava používajú na riadenie prepínania vlákien?
sobes.tech AI
Odpoveď od AI
V RxJava sa používajú operátory subscribeOn() a observeOn() na riadenie vlákien vykonávania.
-
subscribeOn()určuje, na ktorom vlákne bude prebiehať odber a vykonávanie pôvodného Observable. Zvyčajne sa používa na označenie pozadia, napríkladSchedulers.io()pre vstupno-výstupné operácie. -
observeOn()prepína vlákno, na ktorom budú spracovávané nasledujúce operátory a koneční odberatelia. Napríklad, možno prepnúť na hlavné vlákno Androidu pomocouAndroidSchedulers.mainThread().
Príklad:
Observable.just("data")
.subscribeOn(Schedulers.io()) // vykonávanie na pozadí
.observeOn(AndroidSchedulers.mainThread()) // spracovanie výsledku na UI vlákne
.subscribe(data -> {
// aktualizácia UI
});
Takto subscribeOn nastaví vlákno zdroja dát, a observeOn vlákno na spracovanie výsledkov.