condition variable 썸네일형 리스트형 JAVA에서의 동기화 기법(모니터 etc) JAVA에서 모든 객체는 내부적으로 모니터를 가진다. 1. 모니터의 mutual exclusion 기능은 synchrnozied 키워드로 사용한다. 2. JAVA의 모니터는 condirtion variable을 하나만 가진다. ( 두 개 이상의 cv를 원한다면 따로 구현이 필요) 3. JAVA 모니터의 세 가지 동작(Operation) a) wait b) notify(=signal) c) notifyAll(=broadcast) bounded producer/consumer problem WITH JAVA java.util.concurrent에는 동기화 기능이 탑재된 여러 클래스들이 있으니 참고하자. 더보기 모니터(monitor)(sub: 그 모니터 아닙니다 ㅋㅋ) 모니터 1. mutual exclusion을 보장 2. 조건에 따라 스레드가 대기(waiting) 상태로 전환 가능 모니터는 언제 사용되나? 1. 한번에 하나의 스레드만 실행돼야 할 때(mutual exclusive) 2. 여러 스레드와 협업(cooperation)이 필요할 때! 모니터의 구성 요소 1.mutex 2.condition variable(s) : waiting queue를 가지며, 그 안에 조건이 충족되길 기다리는 스레드들이 대기 상태로 머무는 곳! condition variable에서 주요 동작(operation) 1. wait : thread가 자기 자신을 condition variable의 waiting queue에 넣고 대기 상태로 전환 2. signal : waiting queue에.. 더보기 이전 1 다음