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