Встречается на 2% собеседований по Java
Какие блокировки лучше по производительности
Оптимизация блокировок зависит от контекста. Основные варианты:
- Оптимистичные блокировки (через
Atomicилиversionполя) - лучше для read-heavy сценариев, минимизируют contention:
java
AtomicInteger counter = new AtomicInteger();
counter.compareAndSet(expectedValue, newValue);- Fine-grained блокировки (разделение на несколько локов) - уменьшают contention:
java
ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();- ReadWriteLock - позволяет множественные чтения при эксклюзивной записи:
java
ReadWriteLock rwLock = new ReentrantReadWriteLock();
rwLock.readLock().lock();
// read operations
rwLock.readLock().unlock();- StampedLock (Java 8+) - оптимизированная альтернатива ReadWriteLock с поддержкой optimistic reads:
java
StampedLock lock = new StampedLock();
long stamp = lock.tryOptimisticRead();
// validate stampДля максимальной производительности в высоконагруженных системах лучше использовать lock-free структуры (ConcurrentHashMap, CopyOnWriteArrayList) или вообще избегать блокировок через immutable объекты и actor-модели.

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