Вопрос проверяет понимание механизма синхронизации и работы ключевого слова synchronized.
Монитор объекта — это механизм синхронизации, связанный с каждым объектом в Java. Он используется для управления доступом нескольких потоков к общим данным. Только один поток может владеть монитором в конкретный момент времени. Остальные потоки будут ждать его освобождения.
Монитор является фундаментальной частью встроенной синхронизации в Java.
Монитор объекта — это внутренний механизм JVM, который используется для взаимного исключения и координации потоков.
Каждый объект в Java неявно связан с монитором.
Монитор применяется через ключевое слово synchronized.
synchronized-метод блокирует монитор текущего объекта
synchronized-блок может блокировать монитор любого объекта
Пример:
synchronized (lock) {
// только один поток может выполнять этот код
}
wait() и notify()Монитор также используется для координации потоков:
wait() — освобождает монитор и переводит поток в ожидание
notify() / notifyAll() — пробуждают ожидающие потоки
Эти методы можно вызывать только при владении монитором.
Монитор объекта — это базовый механизм синхронизации в Java, который обеспечивает безопасный доступ к общим ресурсам и координацию потоков.