Зачем нужна синхронизация при доступе к shared data?

Middle
279 просмотров
AFK Offer AI

Без синхронизации две горутины могут одновременно читать и писать одну переменную, и это data race. Результат непредсказуем — ты можешь увидеть частично записанное значение или вообще устаревшее. Mutex, каналы или atomic гарантируют что операции упорядочены и данные консистентны. Go даже имеет race detector (-race), который ловит такие баги при тестировании.

Следующий вопрос

Как реализовать stack на слайсе?