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

Когда выгоднее использовать Pessimistic lock

Pessimistic lock лучше использовать, когда высока вероятность конфликтов при одновременном доступе к данным, особенно в высококонкурентных сценариях с частыми изменениями. Он блокирует запись на уровне БД, предотвращая "lost updates" и гарантируя целостность данных.

Пример с JPA:

java
// Блокируем запись на время транзакции
EntityManager em = ...;
Order order = em.find(Order.class, orderId, LockModeType.PESSIMISTIC_WRITE);
order.setStatus("PROCESSING");

Основные случаи:

  1. Финансовые операции (списания/переводы)
  2. Бронирование ограниченных ресурсов
  3. Критичные для бизнеса данные, где ошибки недопустимы

Недостатки: снижение производительности из-за блокировок, риск deadlock. Альтернатива - optimistic lock с @Version, но он требует обработки конфликтов в коде.

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

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

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

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