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

Для чего нужен ReentrantLock

ReentrantLock — это альтернатива synchronized, предоставляющая более гибкое управление блокировками.

Ключевые преимущества:

  • Возможность повторного входа — поток может захватывать один и тот же lock несколько раз.
  • Честность — можно создать "честный" lock (FIFO-очередь ожидающих потоков).
  • Условные переменные — через Condition можно создавать разные условия ожидания.
  • Прерываемое ожиданиеtryLock() с таймаутом или lockInterruptibly().

Пример:

java
ReentrantLock lock = new ReentrantLock();
lock.lock();
try {
    // Критическая секция
} finally {
    lock.unlock(); // Важно освобождать в finally!
}

Когда использовать:

  • Нужен контроль над блокировками (таймауты, прерывания).
  • Требуются сложные схемы синхронизации (например, Condition).
  • synchronized недостаточно гибок.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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