Расскажи про примитивы синхронизации в Go.

Mutex и RWMutex защищают общее состояние, WaitGroup ждёт завершения задач, Once выполняет инициализацию, Cond координирует ожидание условия. Каналы и атомики решают другие задачи синхронизации.

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

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

Mutex и RWMutex защищают общее состояние, WaitGroup ждёт завершения задач, Once выполняет инициализацию, Cond координирует ожидание условия. Каналы и атомики решают другие задачи синхронизации.

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

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

Mutex и RWMutex защищают общее состояние, WaitGroup ждёт завершения задач, Once выполняет инициализацию, Cond координирует ожидание условия. Каналы и атомики решают другие задачи синхронизации.

Начните с того, что нужно гарантировать: исключительный доступ, завершение или передачу владения данными. Само ожидание WaitGroup не делает конкурентные записи безопасными. Для составного инварианта mutex обычно проще набора атомарных полей; блокировку нельзя копировать после начала использования.

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

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

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

Подробнее