Memory model Go определяет при каких условиях чтение переменной в одной горутине гарантированно увидит запись из другой. Без синхронизации компилятор и процессор могут переупорядочить операции, и ты увидишь устаревшие данные. Гарантии дают: запуск горутины, операции с каналами, mutex Lock/Unlock, sync.Once, atomic операции. Если happens-before нет — поведение undefined.
Расскажи про memory model Go
Senior
188 просмотровAFK Offer AI
Что выведет: s := "hello"; b := []byte(s); b[0] = 'H'; fmt.Println(s)?