Sobes.tech
Back to questions
Junior — Middle
75

Каковы основные преимущества и недостатки использования ключевого слова synchronized в Java?

Companies where asked
ИннотехИннотех

Answer from AI

sobes.tech AI

Ключевое слово synchronized в Java используется для обеспечения потокобезопасности, блокируя доступ к критическим секциям кода, чтобы только один поток мог выполнять их одновременно.

Преимущества:

  • Простота использования для защиты общих ресурсов.
  • Гарантирует атомарность и видимость изменений между потоками.
  • Позволяет избежать состояния гонки и других проблем многопоточности.

Недостатки:

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

Пример использования:

public class Counter {
    private int count = 0;

    public synchronized void increment() {
        count++;
    }

    public synchronized int getCount() {
        return count;
    }
}

В этом примере методы increment и getCount синхронизированы, чтобы избежать одновременного изменения переменной count несколькими потоками.