Встречается на собеседованиях • сегодня
При какой проблеме с двух учетных записей одновременно обновляются данные
Это классическая проблема lost update в многопользовательских системах. Возникает, когда две транзакции читают одни данные, затем пытаются их изменить и сохранить, перезаписывая изменения друг друга.
Пример:
java
// Транзакция 1 (пользователь A)
int balance = account.getBalance(); // Читает 100
balance += 50;
account.setBalance(balance); // Сохраняет 150 (но транзакция 2 уже сохранила 120)
// Транзакция 2 (пользователь B)
int balance = account.getBalance(); // Читает 100
balance += 20;
account.setBalance(balance); // Сохраняет 120 (перезаписывает 150)
text
**Решение:**
- **Оптимистичная блокировка** (версионирование)
- **Пессимистичная блокировка** (`SELECT FOR UPDATE`)
- **Atomic операции** (например, `UPDATE accounts SET balance = balance + 50 WHERE id = 1`)
Без синхронизации последняя транзакция "победит", потеряв изменения первой.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы