Sobes.tech
Junior — Middle

Co znamená použití klíčového slova synchronized při synchronizaci objektu v Java?

sobes.tech AI

Odpověď od AI

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

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

Пример:

public class Counter {
    private int count = 0;

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

    public int getCount() {
        return count;
    }
}

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