Language/Kotlin

[Coroutine] Coroutine Context: 코루틴이 실행되는 곳

개랭갱깽스타 2022. 2. 6. 10:14

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/

 

Kotlin Coroutines의 Job 동작을 알아보자 |

I’m an Android Developer.

thdev.tech

 

반응형