Какие примитивы синхронизации бывают в Go? Какой mutex лучше подойдёт в данном случае?

В Go используют Mutex, RWMutex, WaitGroup, Once, Cond, атомики и каналы. Выбор mutex зависит от того, какие данные и операции нужно защищать.

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

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

В Go используют Mutex, RWMutex, WaitGroup, Once, Cond, атомики и каналы. Выбор mutex зависит от того, какие данные и операции нужно защищать.

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

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

В Go используют Mutex, RWMutex, WaitGroup, Once, Cond, атомики и каналы. Выбор mutex зависит от того, какие данные и операции нужно защищать.

Для обычного общего изменяемого состояния начните с Mutex. RWMutex имеет смысл при подходящей нагрузке с конкурентными читателями, но не гарантирует ускорения. Без исходного критического участка нельзя назвать лучший вариант; прежде измерений определите инвариант и убедитесь, что защищены все обращения.

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

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

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

Подробнее