구조화된 동시성 (부모-자식 관계의 특성)

fun main() = runBlocking(CoroutineName("main")) {
    val name = coroutineContext[CoroutineName]?.name
    println(name) // main
    launch { 
        delay(1000)
        val name = coroutineContext[CoroutineName]?.name
        println(name) // main
    }
}

Job이란 무엇인가?

상태 isActive isCompleted isCancelled
New(지연 시작될 때 시작 상태) false false false
Active(시작 상태 기본값) true false false
Completing(일시적인 상태) true false false
Cancelling(일시적인 상태) false false true
Cancelled(최종 상태) false true true
Completed(최종 상태) false true false

New

Active

Completing