В чём разница: Pessimistic vs optimistic locking?

Ответ

Pessimistic: SELECT ... FOR UPDATE блокирует строку. Optimistic: версия (@Version) — при commit проверяется, изменилась ли она.

Разбор: Pessimistic locking берёт блокировку строки в БД заранее (SELECT ... FOR UPDATE), не давая другим менять её. Optimistic не блокирует, а добавляет @Version и при commit проверяет, не изменилась ли версия — если изменилась, бросает OptimisticLockException. Первый дистрактор меняет два подхода местами, второй подменяет механизм блокировки на synchronized и SERIALIZABLE, третий приписывает optimistic несуществующую блокировку на чтение.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться