반응형
디스패처는 코루틴이 실행될 스레드를 결정한다. 시작될 곳과 중단 후 재개될 곳을 모두 포함된다.
Dispatcher.Default
CommonPool로 프레임워크에 의해 자동으로 생성되는 스레드 풀이다. 스레드 풀의 최대 크기는 시스템의 코어 수에서 1을 뺀 값이다.
Dispatcher.Unconfinded
첫 번째 중단 지점에 도달할 때까지 현재 스레드에 있는 코루틴을 실행한다. 코루틴은 일시 중지된 후에, 일시 중단 연산에서 사용된 기존 스레드에서 다시 시작된다.
단일 스레드 컨텍스트
항상 코루틴이 특정 스레드 안에서 실행된다는 것을 보장해주는 것으로 newSingleThreadContext()를 사용한 것을 의미한다.
스레드 풀
newFixedThreadPoolContext()를 의미한 것으로 스레드 풀을 갖고 있으며 해당 풀에서 가용한 스레드에서 코루틴을 시작하고 재개한다. 런타임이 가용한 스레드를 정하고 부하 분산을 위한 방법도 정하기 때문에 따로할 작업은 없다.
NoonCancellable
코루틴은 취소중인 코루틴은 일시 중단될 수 없도록 설계했기 때문에 코루틴이 취소되는 동안 일시 중지가 필요한 경우 NonCancellable 컨텍스트를 사용해야 한다.
반응형
'코틀린' 카테고리의 다른 글
코루틴 디버깅 (0) | 2021.11.10 |
---|---|
코틀린 Contracts (0) | 2021.02.07 |
코루틴 상태는 한 방향으로 이동 (0) | 2020.12.21 |
코루틴 1탄 (0) | 2020.12.08 |
Kotlin에서 Unit 과 Nothing (0) | 2020.04.21 |