notify는 조건 충족을 보장하지 않고 단지 상태가 바뀌었을 가능성을 알립니다.
깨어난 뒤 바로 진행 · 오래된 조건
lock 재획득 뒤 predicate 재검사
조건 true일 때만 loop 탈출
핵심: spurious wakeup과 다른 소비자의 선점 뒤에도 while은 안전합니다.