wait() 스레드 동기화를 위한 Object의 인스턴스 메소드로, synchronized 블록 내에서만 호출이 가능하다. 현재 스레드를 다른 객체가 이 객체에 대한 notify() 메소드를 호출할 때까지 대기한다. notify() wait() 메소드로 인해 대기 중인 스레드를 하나 깨운다. wait() 과 sleep() sleep() 메소드는 현재 스레드를 잠시 멈추게 할 뿐, lock을 release하진 않는다. synchronized 동기화가 필요한 메소드나 코드블럭 앞에 사용하여 동기화할 수 있으며, synchronized로 지정된 임계 영역은 한 스레드가 이 영역에 접근하여 사용할 때 lock이 걸림으로써 다른 스레드가 접근할 수 없게 된다. lock은 해당 객체당 하나씩 존재하며, synchr..