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

Какие знаешь недостаточно изолированные транзакции при параллельной работе и проблеме с данными

**Грязное чтение (Dirty Read)** - чтение незафиксированных данных из параллельной транзакции. Пример: ```java // Транзакция 1 @Transactional void updateBalance() { account.setBalance(100); // Не зафиксировано // Транзакция 2 уже видит 100 } // Транзакция 2 @Transactional(isolation = READ_UNCOMMITTED) int getBalance() { return account.getBalance(); // Может прочитать 100 } ``` **Неповторяемоеся чтение (Non-repeatable Read)** - разные значения при повторном чтении в одной транзакции: ```java @Transactional void process() { int first = account.getBalance(); // 100 // Другая транзакция изменила баланс на 200 int second = account.getBalance(); // 200 } ``` **Фантомное чтение (Phantom Read)** - появление новых строк при повторном запросе: ```java @Transactional void process() { List first = findAllAccounts(); // 10 записей // Другая транзакция добавила новый аккаунт List second = findAllAccounts(); // 11 записей } ``` **Потерянное обновление (Lost Update)** - когда две транзакции перезаписывают изменения друг друга без учета предыдущих модификаций.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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