Основные средства Go — Mutex/RWMutex, WaitGroup, Once, Cond, атомики и каналы. Они решают разные задачи: защиту состояния, ожидание, инициализацию и передачу сигналов.
[имя] спросил: расскажите про примитивы синхронизации в GoLang.
Основные средства Go — Mutex/RWMutex, WaitGroup, Once, Cond, атомики и каналы. Они решают разные задачи: защиту состояния, ожидание, инициализацию и передачу сигналов.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Основные средства Go — Mutex/RWMutex, WaitGroup, Once, Cond, атомики и каналы. Они решают разные задачи: защиту состояния, ожидание, инициализацию и передачу сигналов.
WaitGroup не защищает данные, Once не выполняет retry, RWMutex не гарантирует ускорение чтений. Каналы помогают передавать владение, но сами не устраняют все гонки. Выбирайте примитив по инварианту и жизненному циклу, обеспечивая завершение ожиданий и единый порядок блокировок.