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

Как работает Pessimistic Locking

Pessimistic Locking (пессимистичная блокировка) — это механизм, при котором поток блокирует доступ к данным для других потоков на время работы с ними. Применяется, когда высока вероятность конфликтов при параллельном доступе.

Типы блокировок:

  • PESSIMISTIC_READ — блокировка на чтение (shared lock)
  • PESSIMISTIC_WRITE — блокировка на запись (exclusive lock)

Пример с JPA/Hibernate:

java
EntityManager em = ...;
em.getTransaction().begin();

// Блокируем запись с id=1 для изменения
Product product = em.find(
    Product.class, 
    1L, 
    LockModeType.PESSIMISTIC_WRITE
);

product.setStock(product.getStock() - 1);
em.getTransaction().commit();

Особенности:

  • Блокировка устанавливается на уровне БД
  • Может привести к deadlock'ам
  • Подходит для высококонкурентных операций
  • В отличие от optimistic locking, не использует версионирование
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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