Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- android clean architecture
- fragment
- 타이머앱
- kotlin
- 작성
- RxJava
- Koin
- java.lang.OutOfMemoryError: Java heap space
- onViewCreated
- 특가게시판
- compileKotlin FAILED
- RX
- 특가알람
- andorid
- moveToState
- 올인원타이머
- 뷰 상태복구
- Android
- 안드로이드
- 대학톡
- recyclerview
- 카드내역 공유
- nvidia-docker
- 카드 내역 공유 앱
- 뷰 상태 저장
- List
- Quickly
- 안드로이드 클린 아키텍쳐
- 특가촌
- todofication
Archives
- Today
- Total
seoft
[Rx,Kotlin] list to stream 병렬처리 순차적 응답받기 본문
concatMapEager는 기존 concatMap 역할에서 스트림이 병렬로 처리된다는 특징을 가지고 있다.
그렇기 때문에 동시성과 함께 순서가 보장되어야 될 경우 concatMapEager 연산자를 사용하면 된다.
여러 api host로부터 값을 받오는 즉시 처리하되, 순서를 보장해야되는게 요구사항이라고 가정을 해본다.
request함수를 사전 정의 하였는데 각 url에 따른 randome 시간 후에 response가 오는 상황으로 가정하고 해당 함수를 거쳐 Single로 반환된다.
url string 리스트를 개별 flowable로 반환하여 concatMapEager내에서 하나씩 태우게 되고 반환된 Single 결과값을 flowable으로 변환에 스트림을 진행한다.
string리스트의 순서와 동일하게 결과값이 찍히는걸 볼 수 있으며 총 시간 측정 값도 2초내로 들어오는걸 보아 concatMap과 달리 병렬로 처리되는 것을 알 수 있다.
RxJava, RxKotlin 경우에는 concatMapEager 연산자가 준비 되있지만
작성하고 생각해보니 다른 언어에서 future가 없다;; (혹시 다른 언어에서 해당 연산자가 없을경우 toFuture을 사용하여 구현할 수 도 있다)
결과는 위와 동일하다.
'android' 카테고리의 다른 글
[Android Studio] Run 했을때 변경사항이 바로 반영되지 않을경우 (2) | 2020.11.21 |
---|---|
[Android] firebase 없이 원격 구성(Remote Config) 설정하기 (0) | 2020.08.22 |
[Rx,Kotlin] zip 연산자로 복수개(list)의 single 결합 (0) | 2020.07.13 |
[Android, Glide] url로 부터 image file 저장하기 (0) | 2020.06.26 |
[kotlin/android] 리플랙션을 사용해 KClass로 인스터스 생성하기 (0) | 2020.06.18 |
Comments