interrupt flag 조회 메서드는 소거 여부가 다르다

isInterrupted는 대상 thread의 flag를 관찰하고 Thread.interrupted는 현재 thread flag를 읽고 지웁니다.

t.isInterrupted()

대상 flag 조회 · 유지

Thread.interrupted()

현재 flag 조회 · false로 소거

InterruptedException

blocking 해제 뒤 flag 소거 상태

핵심: 반복 조건에서 실수로 flag를 소비하면 이후 계층이 취소를 보지 못할 수 있습니다.