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

Что можно заблокировать при использовании пессимистической блокировки в транзакциях

При пессимистической блокировке можно заблокировать:

  1. Отдельные строки (наиболее часто) - блокировка конкретных записей в таблице. Например:
java
// JPA/Hibernate
entityManager.find(Employee.class, 1L, LockModeType.PESSIMISTIC_WRITE);
  1. Таблицы целиком - блокировка всей таблицы (редко, т.к. снижает производительность)

  2. Индексы - блокируются автоматически при блокировке строк

  3. Страницы БД - некоторые СУБД блокируют страницы данных, где находятся нужные строки

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

  • PESSIMISTIC_READ - shared lock (много читателей)
  • PESSIMISTIC_WRITE - exclusive lock (только одна транзакция)

Блокировка сохраняется до конца транзакции (commit/rollback). Важно избегать deadlock'ов, правильно проектируя порядок блокировок.

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

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

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

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