Что такое монитор у объекта

«Что такое монитор у объекта» — вопрос из категории Многопоточность, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Пример:

public class Counter {
    private int count = 0;

    public synchronized void increment() {
        count++; // потокобезопасный доступ
    }
}

Ключевые особенности:

  • Только один поток может владеть монитором объекта в данный момент
  • Другие потоки блокируются, пока монитор занят
  • Используется для реализации взаимного исключения (mutex)