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

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

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

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

Пример оптимистичной блокировки (JPA/Hibernate):

java
@Entity
public class Account {
    @Id
    private Long id;
    private double balance;
    @Version
    private int version; // Для проверки изменений
}

Пример пессимистичной блокировки (JPA):

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

Оптимистичная — для высокой конкуренции на чтение, пессимистичная — когда конфликты частые.

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

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

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

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