정상에서 IT를 외치다

[리액티브 프로그래밍] 스케줄러 개념 배우기 본문

안드로이드

[리액티브 프로그래밍] 스케줄러 개념 배우기

Black-Jin 2019. 1. 3. 23:01
반응형


안녕하세요. 블랙진입니다.


한빛미디어 RxJava프로그래밍을 보며 리액티브를 공부한 내용을 정리하기 위한 네번째 포스팅입니다.



책은 예제 위주의 내용이므로 스케줄러가 잘 정리된 블로그에서를 일부를 발췌해 기록하겠습니다.


- subscribOn() 함수는 구독자가 Observable 에 subscribe() 함수를 호출하여 구독할 때 실행되는 스레드를 지정합니다.


- observeOn() 함수는 Observable 에서 생성한 데이터 흐름이 여기저기 함수를 거치며 처리될 때 동작이 어느 스레드에서 일어나는지 지정할 수 있습니다.



스케줄러의 종류


Schedulers.newThread()

-> RxNewThreadScheduler-1 ... n

새로운 스레드를 계속 생성합니다.


Schedulers.computation()

-> RxComputationThreadPool-1 .. 프로세서 개수

빠르게 계산하여 결과를 도출하는데 집중하는 스케줄러입니다.

계산 스케줄러는 내부적으로 스레드 풀을 생성하여 프로세서 개수만큼 스레드를 만들어 처리합니다.

스레드가 코어를 모두 점유하고 있는 경우에는 대기열에 들어갑니다.


Schedulers.trampoline()

새로운 스레드를 생성하지 않고 현재 스레드에서 무한한 크기의 대기 큐를 생성합니다.

큐에 넣은 작업을 순차적으로 처리하므로 실행 순서가 바뀌지도 않습니다.


Schedulers.single()

-> RxSingleScheduler-1 

내부에서 단일 스레드를 생성하여 구독을 처리합니다.

여러번 구독이 있어도 공통된 스레드를 사용합니다.


Schedulers.io()

-> RxCachedThreadScheduler-1

네트워크상의 요청을 처리하거나 각종 입,출력 작업을 실행하기 위한 스케줄러



이렇게 RxJava 프로그래밍 책 포스팅을 모두 맞치겠습니다. 일단 빠르게 책의 전체 내용을 다 보긴 했지만 계속 복습하면서 반복 사용해야 RxJava 와 친숙해 질 수 있을 것 같습니다. 아직 많이 부족하지만 실재 프로젝트에 조금씩 도입하다보면 리엑티브 프로그래밍을 자유자재로 다룰 수 있게 되지 않을까요??


리액티브 프로그래밍 책 리뷰

1. 리액티브 프로그래밍이란?

2. 리액티브 연산자 입문

3. 리액티브 연산자의 활용

4. 스케줄러 개념 배우기(현재)


리액티브 활용

1. Rxbinding 사용기

2. Rx를 사용한 이벤트버스

3. Rx를 사용한 Retrofit 통신



반응형
Comments