Исходя из моего понимания концепции монитора, в терминологии Java монитор обладает следующими свойствами:
Монитор - это класс только с закрытыми полями.
Каждый объект этого класса имеет связанную блокировку.
Все методы заблокированы этой блокировкой.
Блокировка может иметь любое количество связанных условий.
Но java объекты отличаются от концепции монитора,
Поля не обязательно должны быть частными.
Методы не обязательно должны быть synchronized
.
И при работе с ключевым словом synchronized
блокировка может иметь одно ассоциированное условие.
Почему java synchronized
не дает доступа к нескольким ассоциированным условиям ? И почему java не полностью соблюдает правила концепции монитора.