Junior — Middle
Mi a fő szerepe a sync.Once típusnak a szálak szinkronizálásában Go-ban?
sobes.tech MI
Válasz az MI-től
A sync.Once típus Go nyelven arra szolgál, hogy garantálja, hogy egy adott kódrészlet pontosan egyszer fusson le, még akkor is, ha több szál (goroutine) hívja meg.
Fő feladata az erőforrások biztonságos inicializálása (például singleton létrehozása), hogy elkerüljük a versenyhelyzeteket és az ismételt végrehajtást.
Használati példa:
var once sync.Once
var config *Config
func loadConfig() {
config = &Config{/* inicializálás */}
}
func GetConfig() *Config {
once.Do(loadConfig) // loadConfig csak egyszer hívódik meg
return config
}
Így a sync.Once biztosítja, hogy egy függvény szálbiztosan, csak egyszer fusson le.