여러 Thread는 start loop와 join loop를 분리한다

하나를 시작하자마자 join하면 사실상 직렬 실행이 되므로 먼저 모두 시작하고 나중에 회수합니다.

  1. 1

    Thread 목록 생성

    작업·결과 슬롯 연결

  2. 2

    start loop

    모든 worker 실행

  3. 3

    join loop

    각 완료 회수

  4. 4

    실패 확인

    result·exception

  5. 5

    최종 집계

    완료된 값 소비

핵심: join 중 interrupt가 나면 취소·복원·상위 전달 정책을 일관되게 적용합니다.