Sobes.tech
Back to questions
Junior — Middle
56

Можете объяснить, что подразумевают под термином 'монитор' в программировании?

Companies where asked
АЙ-ТЕКОАЙ-ТЕКО
Передовые Платежные Решения
ООО Ренью
СБЕР КорпусСБЕР Корпус
айтеко

Answer from AI

sobes.tech AI

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

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

Пример:

public class Counter {
    private int count = 0;

    public synchronized void increment() {
        count++;
    }

    public synchronized int getCount() {
        return count;
    }
}

Здесь методы increment и getCount синхронизированы, что означает, что монитор объекта Counter гарантирует, что только один поток одновременно может выполнять эти методы, предотвращая состояние гонки.