자바에서 모든 객체는 내부적으로 모니터를 가진다.
모니터의 상호 배제 기능은 synchronized 키워드로 사용한다.
synchronized public void consume() {
// logic
}
public void produce() {
synchronized (this) {
// logic
}
}자바의 모니터는 조건변수를 하나만 가진다.
두 가지 이상의 조건변수가 필요하다면 별도로 구현해야 한다.
조건변수에 대해 3가지 메소드를 지원한다. 해당 메서드는 Object 클래스에 기술되어 있다.
waitnotify: (signal)notifyAll(broadcast)
출처 및 참고자료
https://www.baeldung.com/cs/monitor
https://www.youtube.com/watch?v=Dms1oBmRAlo&t=954s
https://chatgpt.com/share/6a9faa34-72b4-83ee-8b9b-42259bb57b6b