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

Какие знаешь альтернативы у synchronized

В Java есть несколько альтернатив synchronized для управления многопоточностью:

  1. ReentrantLock – более гибкая блокировка с поддержкой таймаутов и прерываний:
java
Lock lock = new ReentrantLock();
lock.lock();
try {
    // критическая секция
} finally {
    lock.unlock();
}
  1. ReadWriteLock – разделяет блокировки на чтение (множественный доступ) и запись (эксклюзивный):
java
ReadWriteLock rwLock = new ReentrantReadWriteLock();
rwLock.readLock().lock(); // для чтения
rwLock.writeLock().lock(); // для записи
  1. Atomic-классы (AtomicInteger, AtomicReference и др.) – для атомарных операций без блокировок.

  2. Semaphore – ограничивает количество потоков, которые могут войти в критическую секцию.

  3. Concurrent коллекции (ConcurrentHashMap, CopyOnWriteArrayList) – потокобезопасные реализации.

  4. StampedLock (Java 8+) – оптимизированная блокировка с поддержкой оптимистичного чтения.

Каждый вариант имеет свои преимущества в зависимости от сценария использования (производительность, гибкость, простота).

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

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

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

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