본문 바로가기
ReactiveX (Rx)

RxJava, RxAndroid Scheduler에 대해 알아보자

by 안솝우화 2022. 3. 29.
반응형

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) 특정 핸들러에 의존하여 동작
반응형