728x90

2022/09/29 2

Kotlin Coroutine Series - 4) Job

Job 우리는 앞서서 Coroutine 의 기본 동작 원리 및 Continuation 과 CoroutineContext 와 같은 문맥을 유지해주는 부분에 관해서도 공부했다. Job 은 CoroutineContext 인데 앞서서 계속 얘기한 Structured Concurrency 를 유지하기 위한 하나의 수단이자 코루틴은 모두 자신만의 Job 을 가지고 있다. Context 와 다르게 상속받지 않고, 오로지 자신의 코루틴에만 의존한다. 이것도 말 보다 코드를 보는게 백배 이해가 빠르니 아래 코드를 한번 같이 보자. suspend fun main(): Unit = coroutineScope { val parentJob = coroutineContext[Job] println("[ParentJob] ${pa..

카테고리 없음 2022.09.29

Kotlin Coroutine Series - 3 ) CoroutineContext

COROUTINE CONTEXT CoroutineContext 는 Coroutine 안에서 유지되도록 사용자가 별도로 정의한 문맥이라고 생각하면 좋은데, 따라서 Continuation 과 유사하게 우리가 가져가야 하는 문맥(Context) 이다. Coroutine Context 는 코드적으로 Map 이라고 생각하면 매우 이해하기 편하다. 따라서, CoroutineContext.Key 와 CoroutineContext.Element 의 조합으로 이루어져 있으며, Single Value 일수도 있고 여러개가 합쳐져 유사 Collection 과 같은 형태로 존재 할수도 있다. 이게 위처럼 말하면 사실 코드를 보지 않고는 무슨 소리인지 이해가 어려우므로 코드를 보고 다시 정의를 한번 보도록 하자 Coroutin..

Kotlin 2022.09.29
728x90