Replies: 2 comments
-
CoroutineDispatchers란?영어 그대로, 코루틴을 어딘가(Thread)로 보내는 역할을 함 사용자가 코루틴을 실행요청하면 코루틴을 작업 대기열에 적재하고 사용 가능한 스레드로 코루틴을 보내는 역할 코루틴 디스패처의 종류Dispatchers.IO
Dispatches.Default
Dispatches.Main
|
Beta Was this translation helpful? Give feedback.
0 replies
-
CoroutineDispatcher는 AbstractCoroutineContextElement와 CoroutinuationInterceptor를 상속받아 구현되는 추상클래스 입니다. 이는 모든 coroutine dispatcher 구현의 기본 클래스 역할을 합니다. dispatcher는 해당 코루틴이 실행될 스레드 혹은 스레드 풀을 결정합니다. dispatcher는 코루틴 실행을 특정 스레드에 고정하거나, 스레드 풀로 dispatch 하거나, 스레드에 제한을 두지 않고 실행할 수 있습니다. kotlinx.coroutines에서 제공하는 표준 dispatcher는 다음과 같습니다.
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
코루틴 디스패처(Coroutine Dispatcher)란 코루틴이 어느 스레드나 스레드 풀에서 실행될지를 결정하는 역할을 합니다. 디스패처를 통해 코루틴의 실행 컨텍스트를 지정함으로써, 필요한 작업에 맞는 적절한 스레드에서 코루틴을 실행할 수 있습니다.
코루틴 디스패처의 주요 종류는 다음과 같습니다.
Dispatchers.Default: 기본 디스패처로, CPU 집약적인 작업에 적합합니다. 공유된 백그라운드 스레드 풀에서 실행되며, 코어 수에 비례하여 스레드를 사용합니다.
Dispatchers.IO: 입출력(IO) 작업에 최적화된 디스패처입니다. 데이터베이스 접근이나 파일 읽기/쓰기, 네트워크 통신 등 블로킹 IO 작업에 사용됩니다. 내부적으로 더 큰 스레드 풀을 사용하여 많은 수의 IO 작업을 효율적으로 처리합니다.
Dispatchers.Main: 메인 스레드에서 코루틴을 실행하도록 합니다. 주로 안드로이드 같은 UI 애플리케이션에서 UI 업데이트 작업을 수행할 때 사용됩니다.
Dispatchers.Unconfined: 특정 스레드에 제한되지 않고 현재 스레드에서 코루틴을 시작하지만, 첫 번째 일시 중단 이후에는 일시 중단 함수를 재개한 스레드에서 이어집니다. 일반적으로 특수한 경우에만 사용되며, 예상치 못한 동작을 유발할 수 있으므로 주의가 필요합니다.
Beta Was this translation helpful? Give feedback.
All reactions