Back to questions
Альфа-Банк
Т-Банк
Junior — Middle
60
Можете объяснить назначение и принцип работы ключевого слова synchronized в Java?
Companies where asked
СБЕР Бизнес
Prooftech
Answer from AI
sobes.tech AI
Ключевое слово synchronized в Java используется для управления доступом к разделяемым ресурсам в многопоточной среде. Оно обеспечивает, что только один поток может выполнить определённый блок кода или метод одновременно, предотвращая состояния гонки и обеспечивая корректность данных.
Принцип работы:
- Когда поток входит в synchronized-блок или метод, он захватывает монитор (lock) объекта.
- Другие потоки, пытающиеся войти в этот же synchronized-блок или метод на том же объекте, будут ждать, пока монитор не освободится.
- После выхода из synchronized-блока монитор освобождается, и следующий ожидающий поток может войти.
Пример:
public class Counter {
private int count = 0;
public synchronized void increment() {
count++;
}
public int getCount() {
return count;
}
}
Здесь метод increment синхронизирован, чтобы избежать одновременного изменения переменной count несколькими потоками.