new Thread는 start를 거쳐 새 stack에서 run을 실행한다

객체 생성만으로는 실행되지 않고 start가 JVM과 스케줄러에 새 실행 흐름을 요청합니다.

  1. 1

    new Thread

    상태 NEW

  2. 2

    start()

    JVM에 시작 요청

  3. 3

    RUNNABLE

    스케줄 대상

  4. 4

    새 stack

    run 호출 프레임

  5. 5

    run 종료

    TERMINATED

핵심: main과 worker의 출력 순서는 start 이후부터 비결정적입니다.