Junior — Middle
Explicați principiul de funcționare al monitorului ca mecanism pentru asigurarea sincronizării firelor.
sobes.tech AI
Răspuns de la AI
Монитор в Java — это механизм синхронизации, который обеспечивает взаимное исключение доступа к разделяемым ресурсам между потоками. Каждый объект в Java имеет связанный с ним монитор.
Принцип работы:
- Когда поток входит в синхронизированный блок или метод, он захватывает монитор объекта.
- Пока монитор захвачен, другие потоки, пытающиеся войти в этот же синхронизированный блок, блокируются и ждут освобождения монитора.
- После выхода из блока монитор освобождается, и один из ожидающих потоков получает доступ.
Это гарантирует, что в критической секции кода одновременно выполняется только один поток, предотвращая состояние гонки и обеспечивая корректность данных.
Пример:
synchronized(this) {
// критическая секция
sharedResource++;
}