Встречается на собеседованиях • сегодня
В чем разница между ReentrantLock и synchronized
ReentrantLock и synchronized оба обеспечивают потокобезопасность, но имеют ключевые различия:
- Гибкость
ReentrantLockпозволяет явно блокировать и разблокировать (lock(),unlock()), поддерживает таймауты (tryLock(timeout)), честность (fairness) и условия (Condition).synchronized— автоматический, без этих возможностей.
-
Производительность
В Java 5+ReentrantLockможет быть быстрее в высококонкурентных сценариях.synchronizedоптимизирован JVM (biased locking, adaptive spinning). -
Читаемость
synchronizedлаконичнее (встроен в язык),ReentrantLockтребует ручного управления.
Пример:
java
// synchronized
synchronized (this) {
// critical section
}
// ReentrantLock
Lock lock = new ReentrantLock();
lock.lock();
try {
// critical section
} finally {
lock.unlock();
}Когда что использовать:
synchronized— для простых случаев.ReentrantLock— когда нужны продвинутые фичи (таймауты, условия).

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