Junior — Middle
87
Můžeš vysvětlit, jak používat klíčové slovo synchronized pro synchronizaci vláken?
Odpověď od AI
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++;
}
}
Это даёт более гибкий контроль над синхронизацией.