ReactiveX (Rx)

RxJava, RxAndroid Scheduler에 대해 알아보자

안솝우화 2022. 3. 29. 12:15
반응형

Schedulars 란?

스케줄러(Schedular)란 Observable, Operator(연산자), Subscriber이 수행하는 스레드를 결정해주는 것입니다
하지만 일부 연산자들은 자체적으로 어떤 스케줄러에서 사용할지 지정하기 때문에 모든 연산자들의 스케줄러를 지정해줄 수 있는 건 아닙니다
실제로 코드에서는 subscribeOn, observeOn 연산자로 사용 가능합니다

 

subscribeOn 이란?

구독에서 사용할 스레드를 지정합니다, observable의 스케줄러를 정해주기 위해 사용할 수 있습니다

 

observeOn 이란?

추가적인 연산자에 대한 작업 스레드를 정해주기 위해 사용할 수 있습니다

 

RxJava의 스케줄러 종류는?

생성 방법 내용
Schdulers.io() I/O 처리 작업을 할 때 사용하는 스케줄러
네트워크 요청 처리, 입/출력 작업, db등에 사용
쓰레드를 필요할때 생성
Schdulers.computation() 논리적인 연산 처리 시 사용(I/O처리를 해서는 안됨)
내부적으로 스레드 풀 생성 가능
스레드 개수는 프로세서 개수
Schdulers.trampoline() 현재 스레드에 무한한 크기의 대기 큐 생성
큐에 있는 일이 끝나면 이어서 수행
Schdulers.newThread() 항상 새로운 스레드를 생성
Schdulers.single() 단일 스레듸를 생성해 계속 재사용

immediate()도 있지만 2 버전부터는 삭제가 되어 소개하지 않겠습니다
위에 표 중 위에서 3개를 rxjava에서는 사용 권장하고 있습니다

 

RxAndroid의 스케줄러 종류는?

생성 방법 내용
AndroidSchedulers.mainThread() 안드로이드의 UI 스레드에서 동작
HandlerScheduler.from(handler) 특정 핸들러에 의존하여 동작
반응형