(JAVA) wait() 와 notify()
2020. 1. 26. 13:50
synchronized로 동기화해서 공유 데이터를 보호하는 것 까지는 좋지만 만약 특정 쓰레드가 락을 가진 상태로 오랜 시간 보낸다면 곤란하다. 이러한 문제를 개선하기 위해 고안된 것이 wait(), notify() 이다. 임계 영역의 코드를 수행하다 더 이상 진행할 상황이 아니면 wait()를 호출하여 lock을 반납 작업을 진행할 상황이 되면 notify() 호출 단 lock을 반납하더라도 오래 기다린 Thread가 lock을 얻는다는 보장이 없다.