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

Как решить проблему Race Condition

Race Condition возникает, когда несколько потоков одновременно обращаются к общему ресурсу без синхронизации. Решения:

  1. Synchronized блоки/методы

    java
    public synchronized void increment() {
        counter++;
    }
  2. Atomic классы (AtomicInteger, AtomicLong и т.д.)

    java
    AtomicInteger counter = new AtomicInteger(0);
    counter.incrementAndGet();
  1. Lock API (ReentrantLock)

    java
    Lock lock = new ReentrantLock();
    lock.lock();
    try { counter++; } 
    finally { lock.unlock(); }
  2. Использование volatile (только для гарантии видимости, но не атомарности)

Лучший выбор зависит от контекста:

  • Atomic — для простых операций
  • Lock — для сложных сценариев
  • Synchronized — если нужна встроенная поддержка JVM

Важно минимизировать критические секции для производительности.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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