작성
·
517
0
답변 1
1
안녕하세요?
조금 난해한 질문을 해주셨는데, Java에서 객체별 모니터에서 조건변수를 어떻게 처리하느냐 등에 대한 사항은 JVM Spec. 을 통해서 확인해 봐야 할 사항이고, Spec.에 명시 되어 있더라도 구현체에 따라 달라질 수 있습니다.
개념적으로는 질문하신대로 각 모니터별로 하나의 조건변수를 두어, 해당 조건변수를 이용해서 다중 쓰레드가 모니터 락을 획득하도록 가상머신 스케줄러가 조정해 주면 됩니다. 교재에서 예시로 든 x, y는 해당 모니터가 관리하는 자원의 수, 쓰레드 경쟁환경 등을 기준으로 생성하고 관리해 주면 됩니다. 이것은 개념 상의 문제이므로, 특별히 어떤 기준이 있다고 하기에는 좀 애매한 개념이라고 생각하시면 될 듯 합니다.