sondiaa 2022. 5. 23. 20:10

모니터는 세마포같은 동기화 도구이다.

그러나 세마포보다 고등 동기화 도구로 고수준의 기능을 제공한다.

 

모니터는 공유 자원, 공유 자원에 접근하는 함수, 2개의 큐로 구성된다.

2개의 큐는 배타 동기를 위한 큐와 조건 동기를 위한 큐이다.

 

자바의 모든 객체는 모니터가 될 수 있다. 

Synchronized 키워드를 통해서 사용

 

따라서 해당 키워드가 붙은 함수들은 공유 자원에 동시에 접근할 수 없다.

 

wait() 조건 동기 큐로 보냄

notify() 조건 동기 큐에서 하나를 꺼냄

notifyall() 조건 동기 큐에서 전부 꺼냄