티스토리 뷰
반응형
RxJava 스케줄러의 핵심은 결국 제공되는 스케줄러의 종류를 선택한 후 subscribeOn과 observeOn 함수를 호출하는 것입니다.
subscribeOn 함수는 Observable에서 구독자가 subscribe 함수를 호출했을 때 데이터 흐름을 발행하는 스레드를 지정하고, observeOn 함수는 처리된 결과를 구독자에게 전달하는 스레드를 지정합니다.
또한, subscribeOn 함수는 처음 지정한 스레드를 고정시키므로 다시 subsribeOn 함수를 호출해도 무시합니다.
하지만 observeOn 함수는 다릅니다.
위의 사진을 설명하면 아래와 같습니다.
-
subscribeOn을 호출했을 때는 데이터를 발행하는 첫 줄이 파란색 줄에서 실행된다. 이후에는 observeOn 함수가 호출될 때까지 파란색 스레드에서 실행된다.
-
observeOn(주황색)을 호출하면 그다음 줄부터는 주황색 스레드에서 실행된다.
-
map 함수는 스레드 변경과 상관없으므로 주황색 스레드를 유지한다.
-
observeOn(분홍색)을 호출하면 그 다음 데이터 흐름은 분홍색 스레드에서 실행된다
요약하면 아래와 같습니다.
- subscribeOn 함수는 한번 호출했을 때 결정한 스레드를 고정하며 이후에는 다시 호출해도 스레드가 바뀌지 않는다.
- observeOn은 여러 번 호출할 수 있으며 호출되면 그다음부터 동작하는 스레드를 바꿀 수 있다.
반응형
'알려주는 이야기 > RxJava' 카테고리의 다른 글
23. RxJava 디버깅 (0) | 2020.07.23 |
---|---|
22. RxJava - OpenWeather Api 예제 (0) | 2020.07.23 |
20. RxJava - 콜백 지옥 (0) | 2020.07.21 |
19. RxJava - 스케줄러 종류 (0) | 2020.07.21 |
18. RxJava - 스케줄러 개념 (0) | 2020.07.20 |
댓글