Что такое memory ordering в контексте Go?

Senior
77 просмотров
AFK Offer AI

Go memory model определяет happens-before отношения: запись в переменную видна другой горутине только если есть синхронизация (канал, мьютекс, atomic). Без этого компилятор и CPU могут переупорядочить операции. Atomic операции в Go дают sequential consistency. Простое присваивание между горутинами — data race, даже если кажется безопасным.

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

Как спроектировать recommendation engine на Go?