Junior — Middle
Care este rolul principal al tipului sync.Once în sincronizarea firelor în Go?
sobes.tech AI
Răspuns de la AI
Tipul sync.Once în Go este utilizat pentru a garanta că un anumit fragment de cod va fi executat exact o dată, chiar dacă este apelat din mai multe goroutines.
Rolul principal este inițializarea sigură a resurselor (de exemplu, crearea unui singleton), pentru a evita condițiile de cursă și executarea repetată.
Exemplu de utilizare:
var once sync.Once
var config *Config
func loadConfig() {
config = &Config{/* inițializare */}
}
func GetConfig() *Config {
once.Do(loadConfig) // loadConfig va fi apelat doar o dată
return config
}
Astfel, sync.Once asigură executarea sigură pentru mai multe fire de execuție a unei funcții o singură dată.