Sobes.tech
Back to questions
Junior — Middle
67

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

Companies where asked
СБЕР КорпусСБЕР Корпус

Answer from AI

sobes.tech AI

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

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

Пример:

public class Counter {
    private int count = 0;

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

    public int getCount() {
        return count;
    }
}

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