Dispatcher이란?
Dispatcher
Coroutine을 실행할 스레드를 결정한다.
- Main
- Main 스레드(=UI 스레드)를 이용한다.
- UI에 접근하는 경우 반드시 이용해야 한다.
- Main 스레드(=UI 스레드)를 이용한다.
- IO
- 네트워크 작업을 진행할 때 이용한다.
- 내부의 공유 스레드풀을 이용한다.(스레드 최대 64개)
- 네트워크 작업을 진행할 때 이용한다.
- Default
- 이름 그대로 Dispatcher를 설정하지 않았을 때 설정되는 기본 Dispatcher.
- CPU 집약적인 작업에 적합하다.
- 최대 CPU 갯수만큼의 스레드가 할당된다.
- 이름 그대로 Dispatcher를 설정하지 않았을 때 설정되는 기본 Dispatcher.
설정 방법
- Coroutine Builder를 통해 설정할 수 있다.
+
연산자를 이용한다. - 명시하지 않으면 부모 코루틴의 Dispatcher을 상속받는다.
- withContext(): 코드 블럭이 다른 Dispatcher를 통해 수행되도록 한다.