2013-05-07 2 views

ответ

1

В общем, нет, это не гарантирует отсутствие взаимоблокировок. Пожалуйста, посмотрите примеры кода на Deadlocks and Synchronized methods и Deadlock in Java. Оба класса, A и B, с синхронизированными методами генерируют только идеальный тупик.

Кроме того, на мой взгляд, ваша формулировка «Java-монитор с синхронизированными методами», хотя и концептуально корректна, немного отличается от принятой на Java. Например, java.lang.Object.wait() Javadoc ставит следующим образом:

«Текущий поток должен владеть монитор этого объекта»

Это неявно предполагает, что объект и монитор это не одно и то же. Вместо этого монитор - это то, что мы непосредственно не видим или не обращаем.

Смежные вопросы