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

Где использовал synchronized

synchronized используется для управления доступом к общему ресурсу в многопоточной среде, предотвращая race condition.

Основные случаи применения:

  1. Методы:
    java
    public synchronized void increment() {
        counter++;
    }
    Блокирует весь объект (для нестатических методов) или класс (для статических).
  1. Блоки кода:

    java
    public void increment() {
        synchronized(this) {
            counter++;
        }
    }

    Позволяет синхронизировать только часть кода, уменьшая накладные расходы.

  2. Статические блоки:

    java
    synchronized(MyClass.class) {
        // Критическая секция
    }

    Используется для синхронизации на уровне класса.

Осторожно:

  • Может привести к deadlock, если несколько потоков блокируют ресурсы в разном порядке.
  • Избыточная синхронизация снижает производительность.

Альтернативы: ReentrantLock, Atomic-классы, ConcurrentHashMap и др. из java.util.concurrent.

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

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

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

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