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