완료 전 결과 필드 읽기의 경쟁

공유 필드만 두면 계산 완료와 값 공개 사이의 선행 관계가 없다.

  1. 작업 제출

    호출자는 계산을 다른 스레드에 맡긴다.

  2. 즉시 읽기

    결과 필드를 완료 전에 확인한다.

  3. 계산 종료

    작업자가 나중에 값을 기록한다.

  4. 잘못된 판단

    기본값을 실제 결과로 오인한다.

핵심: Future.get은 완료 대기와 결과 공개를 하나의 계약으로 묶는다.