3 вопросов
Go Memory Model: happens-before, видимость записей между горутинами, переупорядочивание операций компилятором и процессором, синхронизация через каналы, мьютексы и atomic.
Обычное присваивание без синхронизации не гарантирует видимость другим горутинам. Нужен канал, мьютекс, WaitGroup или atomic.
Подробнее →Go Memory Model определяет happens-before - при каких операциях синхронизации чтение в одной горутине гарантированно увидит запись из другой.
Подробнее →Компилятор и процессор могут переупорядочивать операции, сохраняя семантику в рамках одной горутины. Без синхронизации другие горутины могут видеть записи в ином порядке.
Подробнее →