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

В чем разница между Optimistic lock и Pessimistic lock

Optimistic lock предполагает, что конфликты редки, и проверяет изменения при коммите. Если данные изменились, выбрасывается исключение (например, OptimisticLockException). Использует версию или timestamp.

Pessimistic lock блокирует данные на уровне БД при чтении, предотвращая изменения другими транзакциями. Подходит для частых конфликтов.

Пример Optimistic lock (JPA/Hibernate):

java
@Entity
public class Product {
    @Id
    private Long id;
    private String name;
    @Version
    private int version; // автоматически инкрементируется при изменении
}

Pessimistic lock (JPA):

java
Product product = entityManager.find(Product.class, 1L, LockModeType.PESSIMISTIC_WRITE);

Optimistic — легковесный, Pessimistic — гарантирует целостность, но снижает производительность.

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

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

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

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