每个 Java 对象(及其类)都有一个关联的监视器。在 pthread 术语中,Java 监视器等同于可重入互斥锁和条件变量的组合。
对于锁定,Win32 API 提供 Mutex 对象(可重入但重量级)和关键部分(不可重入但轻量级)。它还提供了其他同步结构,例如信号量和事件,但没有明确的条件变量概念。
如果我正在编写一个 JVM,我如何使用这些 Win32 概念来实现 Java 监视器?
每个 Java 对象(及其类)都有一个关联的监视器。在 pthread 术语中,Java 监视器等同于可重入互斥锁和条件变量的组合。
对于锁定,Win32 API 提供 Mutex 对象(可重入但重量级)和关键部分(不可重入但轻量级)。它还提供了其他同步结构,例如信号量和事件,但没有明确的条件变量概念。
如果我正在编写一个 JVM,我如何使用这些 Win32 概念来实现 Java 监视器?