Sobes.tech
Senior
40

Егер карта іске қосу кезінде бір рет инициализацияланып, тек оқуға қолданылса, синхрондау қажет пе?

Сұралған компаниялар
Small

AI-дан жауап

sobes.tech AI

Если map инициализирована один раз при старте программы и после этого используется только для чтения, то синхронизация не нужна. В Go чтение из map безопасно для конкурентного доступа, если при этом никто не пишет в эту map. Главное — гарантировать, что запись (инициализация) завершена до начала параллельных чтений.

Пример:

var m map[string]int

func initMap() {
    m = map[string]int{"a": 1, "b": 2}
}

func readMap(key string) int {
    return m[key]
}

func main() {
    initMap() // инициализация до запуска горутин
    // теперь можно безопасно читать из m в нескольких горутинах без мьютексов
}