안드로이드

[Android] Kotlin 코루틴 사용

이손안나 2021. 10. 7. 16:02

 

코루틴? Kotlin 코루틴은 비동기 코드를 작성할 수 있게하는 API를 제공.

단일 쓰레드 내에서 여러 개의 코루틴을 실행할 수 있기 때문에, 많은 양의 동시 작업을 처리.

메모리 절약의 장점이 있다.

 

코루틴은 쓰레드가 아닌 루티늘 일시 중단(suspend) 하는 방식.

 

jetpack 라이브러리(ACC)에서는 코루틴을 쉽게 사용할 수 있도록 각 lifecycle에 맞는 scope를 제공.

 

viewmodelscope: viewmodel 대상, viewmodel이 제거되면 코루틴 작업 자동 취소 

class MyViewModel: ViewModel() {
    init {
        viewModelScope.launch {
            // Coroutine that will be canceled when the ViewModel is cleared.
        }
    }
}

 

Dispatcher :어떤 쓰레드에서 실행할 것인지에 대한 동작.

 

- main : 메인 쓰레드로, ui 작업을 위해 사용 , ui를 구성하거나 livedata를 업데이트 할 때 사용

- io: 네트워크 , 디스크 i/o 실행, retriofit 네트워크 통신 

- default : cpu사용량이 많은 무거운 작업 처리에 최적화 되어 있음.