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

Как был реализован Transaction lock

В Java транзакционные блокировки реализуются через механизмы синхронизации или API java.util.concurrent.locks.

Основные подходы:

  1. synchronized - блокировка на уровне метода или блока кода:
java
public synchronized void transfer(Account from, Account to, int amount) {
    from.withdraw(amount);
    to.deposit(amount);
}
  1. ReentrantLock - более гибкая блокировка:
java
private final Lock lock = new ReentrantLock();

public void transfer(Account from, Account to, int amount) {
    lock.lock();
    try {
        from.withdraw(amount);
        to.deposit(amount);
    } finally {
        lock.unlock();
    }
}

Особенности:

  • synchronized проще, но менее гибкий
  • ReentrantLock поддерживает таймауты, честную очередь и условия
  • Для распределенных систем используют DistributedLock (Zookeeper, Redis)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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