sync.Mutex обеспечивает взаимное исключение при доступе к общему состоянию. Lock входит в критическую секцию, Unlock освобождает её для другого исполнителя.
Для чего используется sync.Mutex?
sync.Mutex обеспечивает взаимное исключение при доступе к общему состоянию. Lock входит в критическую секцию, Unlock освобождает её для другого исполнителя.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
sync.Mutex обеспечивает взаимное исключение при доступе к общему состоянию. Lock входит в критическую секцию, Unlock освобождает её для другого исполнителя.
mu.Lock()
counter++
mu.Unlock()
Все конкурирующие обращения к защищаемому состоянию должны соблюдать один протокол. Mutex не привязан к конкретному полю автоматически; чтение без защиты тоже может образовать гонку. Не копируйте mutex после начала использования, не держите его без необходимости во время медленного I/O и не ожидайте рекурсивного захвата.