1. 구조화된 동시성 복습(6장)

부모-자식 관계의 4가지 특성

  1. 자식이 부모로부터 컨텍스트 상속 - 설정값들을 물려받음
  2. 부모가 모든 자식 작업 완료까지 대기 - 부모/자식 함께 끝남
  3. 부모 취소 시 자식도 함께 취소 - 연쇄적 중단
  4. 자식 에러 발생 시 부모도 에러로 소멸 - 예외 전파

컨텍스트 상속 예시

fun main(): Unit = runBlocking(CoroutineName("main")) {
    val name = coroutineContext[CoroutineName]?.name
    println(name) // main
    launch {
        delay(1000)
        val name = coroutineContext[CoroutineName]?.name
        println(name) // main (부모로부터 상속)
    }
}


2. Job이란 무엇인가?

Job의 기본 개념

Job의 생명주기 상태

Job은 다음 6개 상태 중 하나를 갖는다:

graph TD
    A[NEW] --> B[ACTIVE]
    B --> C[CANCELLING]
    B --> D[COMPLETING]
    C --> E[CANCELLED]
    D --> F[COMPLETED]

주요 상태 설명