Win32 API를 사용하여 Java와 같은 동기화 (모니터)를 구현하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/174423

문제

각 Java 객체 (및 해당 클래스)에는 관련 모니터가 있습니다. pthread 용어에서 Java 모니터는 재진입 뮤텍스와 조건 변수의 조합과 동일합니다.

잠금의 경우 Win32 API는 Mutex 객체 (재진입하지만 헤비급) 및 임계 섹션 (반복적이지만 가벼운)을 제공합니다. 또한 세마포어 및 이벤트와 같은 다른 동기화 구조를 제공하지만 조건 변수에 대한 명시적인 개념은 없습니다.

JVM을 작성하는 경우 어떻게이 Win32 개념을 사용하여 Java 모니터를 구현할 수 있습니까?

도움이 되었습니까?

다른 팁

Windows에는 SignalObjectandwait ()이 있으며 모니터의 조건 변수 대기와 매우 유사하게 사용할 수 있습니다. 이벤트 (재설정) 및 Mutx를 사용한 다음 PulseEvent ()를 사용하여 조건 변수를 신호하는 것과 동일하게 수행 할 수 있습니다.

나는 당신이 OpenJDK 클래스 재진입 락이 어떻게 구현되었는지 확인하는 소스.

(나는 그것을 직접 확인하지 않았으므로 답이 확실하지 않습니다).

Util.concurrent 잠금 장치는 기본 API를 사용하여 구현됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top