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

Работал ли с ReentrantLock

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

  • Reentrancy: поток может повторно захватить уже удерживаемый им лок.
  • Fairness: можно создать "честный" лок (FIFO-очередь), но это снижает производительность.
  • Методы: lock(), unlock(), tryLock(), lockInterruptibly().

Пример:

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

Плюсы:

  • Тонкий контроль блокировки (например, tryLock с таймаутом).
  • Возможность прерывания (lockInterruptibly).

Минусы:

  • Риск забыть unlock() (лучше использовать try-finally).
  • Сложнее, чем synchronized.

Используется, когда нужны продвинутые фичи (например, неблокирующие попытки захвата).

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

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

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

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