쓰레드의 동기화(2): wait() & notify()
·
자바/프로세스와 쓰레드
1. wait()와 notify() - 동기화도 중요하지만, 특정 쓰레드가 객체의 락을 가진 상태로 오랜 시간을 보내지 않도록 하는 것 또한 중요하다. - 이러한 것을 구현하기 위해 wait()와 notify()가 등장하게 되었다. - CS을 수행하다가 작업을 더 이상 진행할 상황이 아니면 wait() 호출을 하여 L을 반납한다. ( 이때, 대기하고 있는 쓰레드는 객체의 대기실(waiting pool)에서 통지를 기다린다. ) - wait() 호출 후, 나중에 작업을 진행할 수 있는 상황이 되면 notify()를 호출해서 다시 L을 얻는다. ( notify()를 통해 통지를 waiting pool에 하면, 모든 쓰레드 중에서 임의의 쓰레드만 통지를 받는다. ) ( notifiyAll()은 기다리고 있는 ..