Runnable은 업무를 담고 Thread는 실행 정책을 둘러싼다

같은 업무를 다른 이름·daemon 여부·시작 시점으로 실행할 수 있게 두 책임을 분리합니다.

Runnable task실행할 업무

Thread name

관찰 식별

daemon

JVM 종료 정책

start

비동기 실행

run

동기 직접 호출

result

공유 객체·후속 추상화

핵심: 결과와 실패 전달이 필요해지면 Runnable 밖의 명시적 결과 통로를 설계합니다.