Встречается на собеседованиях • сегодня

Что значит захватить монитор

Захватить монитор (или войти в synchronized блок) означает получение эксклюзивной блокировки на объекте. Только один поток может захватить монитор объекта в данный момент. Другие потоки, пытающиеся войти в synchronized блок для этого же объекта, будут заблокированы до освобождения монитора.

Пример:

java
public class Counter {
    private int count = 0;
    private final Object lock = new Object();

    public void increment() {
        synchronized(lock) { // захват монитора объекта lock
            count++;
        } // освобождение монитора
    }
}

Ключевые моменты:

  • Монитор связан с каждым объектом в Java
  • synchronized блок гарантирует атомарность операций внутри него
  • Поток освобождает монитор при выходе из synchronized блока
  • Неправильное использование может привести к deadlock'ам
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы