Каждый объект Java (и его класс) имеет связанный монитор. В терминах pthread, монитор Java эквивалентен комбинации повторяющегося мьютекса и условной переменной.
Для блокировки Win32 API предоставляет объекты Mutex (которые являются реентерабельными, но тяжелыми) и критические секции (которые не реентерабельные, но легковесные) Он также предоставляет другие конструкции синхронизации, такие как семафоры и события, но не имеет явного понятия переменной условия.
Если бы я писал JVM, как я мог бы использовать эти концепции Win32 для реализации мониторов Java?