Обычно владельцем называют того, кто отвечает за защищённый участок и освобождение блокировки. Но sync.Mutex в Go не привязан к конкретной горутине.
Что имеется в виду под «владельцем» mutex?
Обычно владельцем называют того, кто отвечает за защищённый участок и освобождение блокировки. Но sync.Mutex в Go не привязан к конкретной горутине.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Обычно владельцем называют того, кто отвечает за защищённый участок и освобождение блокировки. Но sync.Mutex в Go не привязан к конкретной горутине.
Go допускает, чтобы одна горутина вызвала Lock, а другая — Unlock, если протокол корректен. Это не делает произвольное разблокирование безопасным: должны сохраняться инвариант и порядок доступа. Разблокировать свободный mutex нельзя; чаще проще освобождать его в той же функции через defer.
Источник: go.dev.