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

Какие знаешь виды синхронизации

В Java есть несколько механизмов синхронизации:

  1. Synchronized блоки/методы
    Используют монитор объекта для синхронизации:

    java
    public synchronized void method() { ... }
    // или
    synchronized (lockObject) { ... }
  2. Lock интерфейсы (java.util.concurrent.locks)
    Более гибкие, чем synchronized:

    java
    Lock lock = new ReentrantLock();
    lock.lock();
    try { ... } finally { lock.unlock(); }
  1. Atomic классы (java.util.concurrent.atomic)
    Атомарные операции без блокировок:

    java
    AtomicInteger counter = new AtomicInteger(0);
    counter.incrementAndGet();
  2. Volatile переменные
    Гарантирует видимость изменений между потоками, но не атомарность.

  3. Синхронизированные коллекции
    Например, Collections.synchronizedList()

  4. Concurrent коллекции
    Оптимизированы для многопоточности (ConcurrentHashMap, CopyOnWriteArrayList)

  5. Семафоры/Барьеры
    Например, Semaphore, CountDownLatch

Выбор зависит от сценария: для простых случаев - synchronized, для сложных - Lock/Atomic, для высоконагруженных систем - concurrent коллекции.

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

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

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

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