Встречается на собеседованиях • сегодня

В чем разница между видами блокировок

В Java есть несколько видов блокировок:

  1. Неявные (intrinsic) блокировки - используются с synchronized:
java
synchronized(obj) {
    // критическая секция
}
  1. Явные блокировки из java.util.concurrent.locks:
java
Lock lock = new ReentrantLock();
lock.lock();
try {
    // критическая секция
} finally {
    lock.unlock();
}

Ключевые различия:

  • Явные блокировки гибче (tryLock, fair locking)
  • synchronized проще в использовании
  • ReentrantLock поддерживает прерывание ожидания
  • synchronized автоматически освобождается при исключениях

Для большинства случаев synchronized достаточно, но если нужны продвинутые функции (таймауты, честность), лучше использовать ReentrantLock.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы