ReentrantLock не использует intrinsic-монитор объекта как механизм своего lock/unlock. Это явная блокировка с гарантиями памяти, сопоставимыми с synchronized.
Используется ли монитор в ReentrantLock?
ReentrantLock не использует intrinsic-монитор объекта как механизм своего lock/unlock. Это явная блокировка с гарантиями памяти, сопоставимыми с synchronized.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
ReentrantLock не использует intrinsic-монитор объекта как механизм своего lock/unlock. Это явная блокировка с гарантиями памяти, сопоставимыми с synchronized.
В OpenJDK реализация опирается на AQS, атомарное состояние и очередь ожидания с парковкой потоков. Вызов synchronized(lock) захватывает другой механизм и не заменяет lock.lock(). Освобождать ReentrantLock нужно в finally. Дополнительные возможности включают tryLock, прерываемое ожидание и отдельные Condition.
Источник: docs.oracle.com.