но я недоумеваю, зачем использовать слово «монитор объекта» вместо «блокировка объекта»?
См. Ответ ulmangt для ссылок, объясняющих термин «монитор», используемый в этом контексте. Обратите внимание, что:
«Мониторы были изобретены Пером Бринчем Хансеном и К.А. Хоаром и впервые были реализованы на языке Concurrent Pascal Бринча Хансена».
(Источник: Википедия )
Зачем использовать термин «монитор», а не «замок»? Строго говоря, эти термины означают разные вещи ... особенно если вы используете их так, как они были изначально задуманы.
«Блокировка» - это что-то с примитивами получения и освобождения, которые поддерживают определенные свойства блокировки; например, исключительное использование или один писатель / несколько читателей.
«Монитор» - это механизм, который гарантирует, что только один поток может выполнять данный раздел (или разделы) кода в любой момент времени. Это может быть реализовано с помощью блокировки (и «переменных условий», которые позволяют потокам ждать или отправлять уведомления другим потокам о том, что условие выполнено), но это больше, чем просто блокировка. Действительно, в случае Java фактическая блокировка, используемая монитором, напрямую недоступна. (Вы просто не можете сказать «Object.lock ()», чтобы предотвратить его получение другими потоками ... как вы можете с Lock
экземпляром Java .)
Короче говоря, если проявить педантичность, «монитор» на самом деле более подходящий термин, чем «блокировка» для характеристики того, что предоставляет Java. Но на практике оба термина используются почти как синонимы.