Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Java: monitor

Что значит синхронизация на мониторе объекта?

Вопрос проверяет понимание внутреннего механизма synchronized и того, как именно Java координирует доступ потоков к общим данным.

Короткий ответ

Синхронизация на мониторе объекта означает, что потоки конкурируют за внутренний монитор конкретного объекта. Только один поток может владеть монитором в каждый момент времени. Пока монитор захвачен, другие потоки вынуждены ждать. Это обеспечивает взаимное исключение и корректную видимость изменений.

Длинный ответ

Определение

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

Когда используется synchronized, JVM:

  • привязывает блок или метод к монитору

  • разрешает доступ только одному потоку одновременно

Как выглядит синхронизация на объекте

synchronized (lock) {
    // критическая секция
}

Здесь:

  • lock — объект, чей монитор используется

  • поток должен захватить монитор lock, чтобы войти в блок

Что происходит при конкуренции потоков

  1. Первый поток захватывает монитор объекта

  2. Все остальные потоки блокируются

  3. После выхода из блока монитор освобождается

Важный нюанс

Синхронизация привязана к конкретному объекту, а не к коду.

Object a = new Object();
Object b = new Object();

synchronized (a) { } // один монитор
synchronized (b) { } // другой монитор

Эти блоки не блокируют друг друга.

Вывод

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

Уровень

  • Рейтинг:

    5

  • Сложность:

    7

Навыки

  • Java

    Java

Ключевые слова

#monitor

Подпишись на Java Developer в телеграм