Coroutine Context
코루틴은 항상 Coroutine Context로 구성된 context 안에서 실행된다. 이 context는 Dispatchers와 Job으로 구성된다.
Dispatchers 코루틴이 실행될 스레드를 지정하는 역할
Job 코루틴의 상태를 확인하고, 제어할 수 있다. → 코루틴의 수명주기를 제어할 수 있다.
더 자세히 알아보자!
Job
https://thdev.tech/kotlin/2019/04/08/Init-Coroutines-Job/
Dispatchers
CoroutineContext의 주요 요소
코루틴의 실행 목적에 맞게 실행될 특정 Thread Pool을 지정해 준다.
- 코루틴 실행 도중, 일시 정지 or 실행 재개를 담당한다.
- 다음에 어떤 코루틴을 실행 시킬지 결정한다.
Dispatchers.Main
- Android 기본 스레드에서 코루틴을 실행한다.
- UI와 상호작용에 최적화 되어있다.
Dispatchers.Unconfined
- 호출한 Context 를 기본으로 사용한다.
- 중단 후 다시 실행될 때 Context 가 바뀌면, 바뀐 Context 를 따라간다.
Dispatchers.Default
- Android 기본 스레드 풀을 사용한다.
- CPU를 많이 쓰는 작업에 최적화 되어있다.
- 데이터 정렬, 복잡한 연산 등
Dispatchers.IO
- 입출력에 최적화 되어있다.
- 네트워크, 디스크, DB 작업 등
.참고
https://thdev.tech/kotlin/2019/04/08/Init-Coroutines-Job/
반응형
'Language > Kotlin' 카테고리의 다른 글
[Coroutine] suspending method: 코루틴 일시 중단 (0) | 2022.02.09 |
---|---|
[Coroutine] Coroutine builder: 코루틴 시작 (0) | 2022.02.07 |
[Coroutine] Coroutine Scope: 코루틴이 실행되는 범위 (0) | 2022.02.05 |
[Coroutine] 코루틴 사용하기 (0) | 2022.02.05 |
[Coroutine] 코루틴이란? (0) | 2022.02.03 |