일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 1일1커밋
- 한달어스
- 아비투스
- 재택근무
- 한달브런치북만들기
- 프래그먼트
- 소프시스
- 커스텀린트
- 면접
- 함수형 프로그래밍
- 어떻게 나답게 살 것인가
- 리얼하다
- 슬기로운 온라인 게임
- 한단어의힘
- 테트리스
- 목적중심리더십
- 좌식테이블
- 베드트레이
- 자취필수템
- 끝말잇기
- 안드로이드
- 베드테이블
- 한달독서
- 북한살둘레길
- 목적 중심 리더십
- T자형인재
- 캐치마인드
- 소프시스 밤부 좌식 엑슬 테이블
- 브런치작가되기
- 지지않는다는말
- Today
- Total
정상에서 IT를 외치다
[리액티브 프로그래밍] 스케줄러 개념 배우기 본문
안녕하세요. 블랙진입니다.
한빛미디어 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 와 친숙해 질 수 있을 것 같습니다. 아직 많이 부족하지만 실재 프로젝트에 조금씩 도입하다보면 리엑티브 프로그래밍을 자유자재로 다룰 수 있게 되지 않을까요??
리액티브 프로그래밍 책 리뷰
4. 스케줄러 개념 배우기(현재)
리액티브 활용
'안드로이드' 카테고리의 다른 글
[Android, Canvas, PorterDiff] PorterDiff.Mode 사용해 모서리가 둥근 이미지 만들기 (2) | 2019.01.21 |
---|---|
[Android, Canvas, Paint] 안드로이드 캔버스 기본 예제 (4) | 2019.01.21 |
[Android,Material with refresh] 머테리얼 변형 예제 (0) | 2019.01.02 |
[Android, MVVM] ViewModel, LiveData, DataBinding, Koin 을 사용한 MVVM (3) | 2018.12.27 |
[리액티브 프로그래밍] 리액티브 연산자의 활용 (0) | 2018.12.19 |