반복문 lambda는 각 회차의 final 복사값을 캡처한다

변하는 loop 변수를 직접 캡처하지 않고 반복 내부에서 현재 값을 별도 지역 변수로 고정합니다.

  1. 1

    loop i

    0,1,2로 변화

  2. 2

    copy

    final int taskId=i

  3. 3

    lambda 생성

    taskId 캡처

  4. 4

    Thread start

    각 task 독립 값

  5. 5

    출력

    0·1·2 구분

핵심: 캡처한 참조가 가리키는 객체 자체는 가변일 수 있으므로 공유 여부를 따로 봅니다.