같은 Runnable도 run과 start에서 실행 시점이 다르다

업무 객체가 같다는 사실은 동기·비동기 실행 정책을 결정하지 않습니다.

task.run()

호출자 thread에서 즉시 실행 · 동기

new Thread(task).start()

worker에서 실행 · 비동기

task 상태

공유하면 여러 Thread가 같은 필드 접근

핵심: 실행 로그에는 thread 이름을 포함해 어느 흐름이 업무를 수행했는지 구분합니다.