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

Как можно избежать пессимистическую блокировку в Java

В Java можно избежать пессимистической блокировки, используя оптимистичные стратегии: 1. **Atomic-классы** (AtomicInteger, AtomicReference) — для простых операций: ```java AtomicInteger counter = new AtomicInteger(0); counter.incrementAndGet(); ``` 2. **Оптимистичная блокировка** через `StampedLock`: ```java StampedLock lock = new StampedLock(); long stamp = lock.tryOptimisticRead(); // Чтение данных if (!lock.validate(stamp)) { stamp = lock.readLock(); // Переход на пессимистичный режим } ``` 3. **CAS-операции** (Compare-And-Swap): ```java AtomicReference ref = new AtomicReference<>("old"); ref.compareAndSet("old", "new"); ``` 4. **Версионирование** (как в Hibernate/JPA): ```java @Entity public class Entity { @Version private int version; // Автоматически проверяется при обновлении } ``` Ключевое преимущество — отсутствие блокировок при чтении, но возможны конфликты при записи, которые нужно обрабатывать (повторные попытки/откаты).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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