Junior — Middle
Jaká je hlavní role typu sync.Once při synchronizaci vláken v Go?
sobes.tech AI
Odpověď od AI
Typ sync.Once v jazyce Go se používá k zajištění, že určitý kus kódu bude vykonán přesně jednou, i když je volán z více vláken (gorutin).
Hlavní funkcí je bezpečná inicializace zdrojů (například vytvoření singletonu), aby se předešlo závodům a opakovanému provádění.
Příklad použití:
var once sync.Once
var config *Config
func loadConfig() {
config = &Config{/* inicializace */}
}
func GetConfig() *Config {
once.Do(loadConfig) // loadConfig bude voláno pouze jednou
return config
}
Tímto způsobem sync.Once zajišťuje bezpečné, vlákno-ochranné provedení funkce pouze jednou.