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++;
}
}
Это даёт более гибкий контроль над синхронизацией.