Sobes.tech
Senior

Als de kaart eenmaal bij het opstarten is geïnitialiseerd en alleen voor lezen wordt gebruikt, is synchronisatie dan nodig?

sobes.tech AI

Antwoord van 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 в нескольких горутинах без мьютексов
}