Junior — Middle
92
Comment la verrouillage optimiste est-il mis en œuvre et quelles sont ses caractéristiques ?
Entreprises à qui on a demandé
Réponse de l'IA
sobes.tech IA
Оптимистическая блокировка — это подход к управлению конкурентным доступом к данным, при котором предполагается, что конфликты при одновременном изменении данных случаются редко. Вместо того чтобы блокировать ресурс на время работы, система позволяет нескольким транзакциям работать параллельно, а проверку конфликтов выполняет при сохранении изменений.
Особенности оптимистической блокировки:
- Используется версия или контрольная сумма (например, поле version в базе данных).
- При обновлении проверяется, что версия данных не изменилась с момента чтения.
- Если версия изменилась, операция откатывается или повторяется.
- Повышает производительность в системах с низкой конкуренцией.
Пример на Java с использованием JPA:
@Entity
public class Product {
@Id
private Long id;
private String name;
@Version
private int version; // поле для оптимистической блокировки
// геттеры и сеттеры
}
// При обновлении:
// Если кто-то другой изменил запись и увеличил version, то при сохранении будет выброшено OptimisticLockException