Sobes.tech
Junior — Middle

Тавзеҳ диҳед, ки калимаи калидии synchronized дар Java чӣ гуна кор мекунад ва маънои онро дар кор бо сӯрохиҳо чӣ гуна аст.

sobes.tech AI

Ҷавоб аз AI

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

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

Это предотвращает состояния гонки и обеспечивает корректный доступ к общим ресурсам.

Пример:

public class Counter {
    private int count = 0;

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

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

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