Sobes.tech
Back to questions
Junior — Middle
60

Объясните принцип работы монитора как механизма для обеспечения синхронизации потоков.

Companies where asked
СБЕРСБЕР
IT OneIT One

Answer from AI

sobes.tech AI

Монитор в Java — это механизм синхронизации, который обеспечивает взаимное исключение доступа к разделяемым ресурсам между потоками. Каждый объект в Java имеет связанный с ним монитор.

Принцип работы:

  • Когда поток входит в синхронизированный блок или метод, он захватывает монитор объекта.
  • Пока монитор захвачен, другие потоки, пытающиеся войти в этот же синхронизированный блок, блокируются и ждут освобождения монитора.
  • После выхода из блока монитор освобождается, и один из ожидающих потоков получает доступ.

Это гарантирует, что в критической секции кода одновременно выполняется только один поток, предотвращая состояние гонки и обеспечивая корректность данных.

Пример:

synchronized(this) {
    // критическая секция
    sharedResource++;
}