본문 바로가기

코틀린

코루틴 컨텍스트 전환

반응형

초기 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