Для чего используется sync.Mutex?

sync.Mutex обеспечивает взаимное исключение при доступе к общему состоянию. Lock входит в критическую секцию, Unlock освобождает её для другого исполнителя.

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

Что ответить на собеседовании

sync.Mutex обеспечивает взаимное исключение при доступе к общему состоянию. Lock входит в критическую секцию, Unlock освобождает её для другого исполнителя.

Подробный разбор

Ответ с пояснениями

sync.Mutex обеспечивает взаимное исключение при доступе к общему состоянию. Lock входит в критическую секцию, Unlock освобождает её для другого исполнителя.

mu.Lock()
counter++
mu.Unlock()

Все конкурирующие обращения к защищаемому состоянию должны соблюдать один протокол. Mutex не привязан к конкретному полю автоматически; чтение без защиты тоже может образовать гонку. Не копируйте mutex после начала использования, не держите его без необходимости во время медленного I/O и не ожидайте рекурсивного захвата.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее