Groo
flatMapMerge를 활용하여 Flow 변환 병렬 처리 본문
반응형
아래 내용은 모두 해당 원글을 기반으로 요약정리한 내용입니다.
그림은 저자가 직접 제작한 것임을 알려드립니다. (출처: Kt World)
flatMapConcat과 flatMapLatest는 원 Flow로부터 발행된 데이터를 새로운 Flow로 변환할 때 순차적으로 진행한다.
그러나 flatMapMerge는 병렬로 변환한다.
val stockFlow = flow {
emit(66600) // 삼성전자
emit(95400) // 카카오
emit(308500) // 네이버
}
@FlowPreview
fun increaseStock() {
lifecycleScope.launch {
stockFlow.flatMapMerge { value ->
flow {
emit(value * 2)
delay(10000)
emit(value * 3)
}
}.collect {
println("증폭된 주식 가격: $it")
}
}
}
// 증폭된 주식 가격: 133200
// 증폭된 주식 가격: 190800
// 증폭된 주식 가격: 617000
// 증폭된 주식 가격: 199800
// 증폭된 주식 가격: 286200
// 증폭된 주식 가격: 925500
병렬로 Flow 변환을 수행하는 flatMapMerge에 대해서 알아봤다.
Flow 변환에 있어 순서가 중요하지 않다면 flatMapMerge를 활용하여 연산 속도를 높일 수 있다.
하나를 알면 관련된 다른 것을 배울 때 훨씬 더 이해가 빨라진다 🌚
반응형
'프로그래밍 언어 > Kotlin' 카테고리의 다른 글
안드로이드 개발자를 위한 Kotlin 2.0의 주요 변경사항 (0) | 2024.06.30 |
---|---|
lifecycleScope와 viewModelScope의 한계 (0) | 2022.04.18 |
flatMapLatest를 활용하여 flatMapConcat의 한계 극복 (0) | 2022.04.17 |
flatMapConcat을 활용하여 Flow를 다른 Flow로 변환 (0) | 2022.04.16 |
conflate를 활용하여 최신 데이터 collect (0) | 2022.04.03 |
Comments