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

Как достигается очередь при Serializable

При Serializable изоляции достигается строгая последовательность выполнения транзакций, как если бы они выполнялись одна за другой. Каждая транзакция видит только данные, зафиксированные до её начала, и изменения других транзакций становятся видны только после их завершения.

Пример:

java
Connection conn = DriverManager.getConnection(url, user, password);
conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
conn.setAutoCommit(false);

try {
// Чтение данных
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT balance FROM accounts WHERE id = 1");
rs.next();
int balance = rs.getInt("balance");

text
// Обновление данных
PreparedStatement pstmt = conn.prepareStatement("UPDATE accounts SET balance = ? WHERE id = 1");
pstmt.setInt(1, balance + 100);
pstmt.executeUpdate();

conn.commit();

} catch (SQLException e) {
conn.rollback();
}

text

В этом режиме СУБД блокирует строки, предотвращая фантомное чтение и другие аномалии, но это может снизить производительность из-за блокировок.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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