반응형
초기 Cntinuation은 DispatchedContinuation으로 감싸여 있다. 여전히 Continuation이지만 Unconfined를 제외한 경우에, 필요에 따라 CorotineDispatcher로 전달할 수 있다. DispatchedTask를 전송한다. DispatchedTask는 Runnable로, withCoroutineContext()를 사용하여 적절한 컨텍스트를 설정하고, DispatchedContinuation으로부터 resume()와 resumeWithException() 함수를 호출한다.
따라서 실제 스레드 변경 작업은 CoroutineDispatcher에서 일어나지만, 실행 전에 연속체를 가로챌 수 있는 전체 파이프라인 덕분에 가능한 것이다.
서적 : 코틀린 동시성 프로그래밍
반응형
'코틀린' 카테고리의 다른 글
보기 좋은 방법으로 Multiple Coroutine 기다리기 (0) | 2022.02.25 |
---|---|
inline, noinline, crossinline (0) | 2022.02.11 |
코루틴 디버깅 (0) | 2021.11.10 |
코틀린 Contracts (0) | 2021.02.07 |
코루틴 콘텍스트 (Context) (0) | 2021.01.03 |