Встречается на собеседованиях • сегодня
Работал ли с 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.
Используется, когда нужны продвинутые фичи (например, неблокирующие попытки захвата).

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы