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

В чем разница между оптимистической и пессимистической блокировками

Оптимистическая блокировка предполагает, что конфликты редки. Данные читаются без блокировки, но перед записью проверяется, что их не изменили (например, через версию или timestamp). Если данные изменились — транзакция откатывается.

Пессимистическая блокировка блокирует данные при чтении, предотвращая изменения другими транзакциями до завершения текущей.

Пример оптимистической:

java
@Entity
public class Account {
    @Version
    private int version;
    // поля + геттеры/сеттеры
}

При обновлении Hibernate проверит version.

Пример пессимистической:

java
entityManager.find(Account.class, id, LockModeType.PESSIMISTIC_WRITE);

Блокирует запись для других транзакций.

Оптимистическая — меньше накладных расходов, но требует обработки конфликтов. Пессимистическая — гарантирует целостность, но может снижать производительность.

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

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

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

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