Sobes.tech
Junior — Middle
73

Можешь объяснить, как использовать ключевое слово synchronized для синхронизации потоков?

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

sobes.tech AI

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

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

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

public class Counter {
    private int count = 0;

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

    public int getCount() {
        return count;
    }
}

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

Также можно синхронизировать блок кода внутри метода:

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

Это даёт более гибкий контроль над синхронизацией.