코루틴 dispatcher

Dispatch란 한국어로 보내다라는 뜻이다. Thread에 Coroutine을 보내는 것을 의미한다. 코루틴에서는 Thread Pool 을 만들고 Dispatcher를 통해 코루틴을 배분한다. 즉, 코루틴을 만든 다음 코루틴을 Dispatcher에 전송하면 Dispatcher은 자신이 관리하는 Thread Pool 내의 Thread 부하 상태에 맞춰 Coroutine을 배분한다.

코루틴은 Thread Pool을 만들지만 직접 제어하지는 않고 Dispatcher에게 모든 걸 위임한다. 안드로이드에서는 Dispatcher가 미리 생성되어 있다

  • Dispatcher.Main
    - Android Main 쓰레드에서 코루틴을 실행하는 Dispatcher, 이 Dispatcher는 UI와 상호작용하는 작업을 실행하기 위해서만 사용해야한다
  • Dispatcher.IO
    - 디스크 또는 네트워크 I/O 작업을 실행하는 데 최적화 되어있는 Dispatcher
  • Dispatcher.Default
    - CPU를 많이 사용하는 작업을 기본 Thread 외부에서 실행하도록 최적화되어 있는 Dispatcher. 정렬 작업이나 JSON 파싱 작업 등에 최적화 되어 있다.
profile
클린코드와 UX를 생각하는 비즈니스 드리븐 소프트웨어 엔지니어입니다.

1개의 댓글

comment-user-thumbnail
2023년 7월 28일

좋은 정보 얻어갑니다, 감사합니다.

답글 달기