Mutex и RWMutex защищают общее состояние, WaitGroup ждёт завершения задач, Once выполняет инициализацию, Cond координирует ожидание условия. Каналы и атомики решают другие задачи синхронизации.
Расскажи про примитивы синхронизации в Go.
Mutex и RWMutex защищают общее состояние, WaitGroup ждёт завершения задач, Once выполняет инициализацию, Cond координирует ожидание условия. Каналы и атомики решают другие задачи синхронизации.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Mutex и RWMutex защищают общее состояние, WaitGroup ждёт завершения задач, Once выполняет инициализацию, Cond координирует ожидание условия. Каналы и атомики решают другие задачи синхронизации.
Начните с того, что нужно гарантировать: исключительный доступ, завершение или передачу владения данными. Само ожидание WaitGroup не делает конкурентные записи безопасными. Для составного инварианта mutex обычно проще набора атомарных полей; блокировку нельзя копировать после начала использования.