// Created on savesnippets.com ยท https://savesnippets.com/AG8nyZeLLs1wvf package main import ( "fmt" "sync" ) var ( initOnce sync.Once config map[string]string ) func loadConfig() { initOnce.Do(func() { fmt.Println("loading config (this prints exactly once)") config = map[string]string{ "db_url": "postgres://...", "port": "8080", } }) } func GetConfig() map[string]string { loadConfig() return config } func main() { var wg sync.WaitGroup for i := 0; i < 5; i++ { wg.Add(1) go func() { defer wg.Done() cfg := GetConfig() fmt.Println("port:", cfg["port"]) }() } wg.Wait() // "loading config" prints ONCE regardless of goroutine count }