대응하는 동기화된 구문 또는 동기화된 메서드 안에서 이루어지지 않는 wait(), notify(), notifyAll() 호출을 보고합니다.

잠금을 포함하지 않는 객체에서 이러한 메서드를 호출하면 IllegalMonitorStateException 예외가 발생합니다. 그러한 구문이 반드시 오류인 것은 아니지만, 포함하는 메서드가 호출되기 전에 필요한 잠금을 얻을 수 있으므로 살펴볼 필요가 있습니다.

예:


  class Sync {
    private final Object lock = new Object();

    void test() throws InterruptedException {
      synchronized (this) {
        lock.wait(); // 'lock.wait()'가 'lock'에서 동기화되지 않습니다
      }
    }
  }