Sobes.tech
Назад к вопросам
Junior — Middle
59

Как работает механизм синхронизации с помощью ключевого слова synchronized в Java?

Ответ от нейросети

sobes.tech AI

В Java ключевое слово synchronized используется для управления доступом к разделяемым ресурсам в многопоточной среде. Оно обеспечивает, что только один поток может выполнять блок кода или метод, помеченный как synchronized, в конкретный момент времени для одного объекта-монитора.

Когда поток входит в synchronized-блок или synchronized-метод, он захватывает монитор (замок) объекта, указанного в synchronized. Другие потоки, пытающиеся войти в этот же synchronized-блок или метод с тем же монитором, будут заблокированы до тех пор, пока первый поток не выйдет из блока и не освободит монитор.

Пример:

public class Counter {
    private int count = 0;

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

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

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