Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про Java: pessimistic, locking

Что такое pessimistic locking?

Вопрос проверяет понимание блокировок на уровне базы данных и сценариев, где важна строгая согласованность.

Короткий ответ

Pessimistic locking — это подход, при котором данные блокируются сразу при чтении. Другие транзакции не могут изменить эти данные, пока блокировка не снята. Это предотвращает конфликты, но снижает производительность. Такой подход используется, когда вероятность конфликтов высока. Он чаще применяется в критичных бизнес-операциях.

Длинный ответ

Pessimistic locking делает ставку на безопасность данных, жертвуя частью производительности.

Определение

Pessimistic locking — это механизм конкурентного доступа, при котором запись или чтение данных сопровождается блокировкой на уровне базы данных.

Как работает pessimistic locking

Перед перечислением важно понимать, что блокировки удерживаются до конца транзакции.

Последовательность действий

  1. Транзакция читает запись с блокировкой

  2. База данных блокирует строку

  3. Другие транзакции ждут освобождения блокировки

  4. После commit или rollback блокировка снимается

Преимущества

  1. Гарантированная согласованность данных

  2. Отсутствие конфликтов при сохранении

Недостатки

  1. Снижение параллелизма

  2. Возможные deadlock

  3. Повышенная нагрузка на БД

Краткий вывод

Pessimistic locking стоит использовать в сценариях с высокой вероятностью конфликтов и критичностью целостности данных.

Уровень

  • Рейтинг:

    5

  • Сложность:

    6

Навыки

  • Java

    Java

Ключевые слова

#pessimistic

#locking

Подпишись на Java Developer в телеграм