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

В чем проблема synchronized

synchronized обеспечивает потокобезопасность, но имеет несколько недостатков:

  1. Производительность – блокировка всей монитора объекта или класса может создавать узкие места, особенно при высокой конкуренции.

  2. Deadlocks – риск взаимоблокировки, если потоки захватывают несколько блокировок в разном порядке.

  1. Отсутствие гибкости – нельзя попробовать захватить блокировку с таймаутом или прервать ожидание.

Пример проблемы:

java
synchronized (lock1) {
    synchronized (lock2) {  // Риск deadlock, если другой поток возьмет lock2 -> lock1
        // Критическая секция
    }
}

Альтернативы:

  • ReentrantLock с таймаутами и условиями
  • ReadWriteLock для разделения чтения/записи
  • Атомарные классы (AtomicInteger и др.)
  • Неблокирующие алгоритмы (CAS)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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