Sobes.tech
Junior — Middle

Koja je glavna uloga tipa sync.Once u sinhronizaciji niti u Go?

sobes.tech АИ

Одговор од АИ

Тип sync.Once у Go се користи за гаранцију да одређени сегмент кода буде извршен тачно једном, чак и ако се позива из више нитова (goroutines).

Главна улога је безбедна иницијализација ресурса (нпр. креирање синглтона), како би се избегле трке и поновно извршавање.

Пример употребе:

var once sync.Once
var config *Config

func loadConfig() {
    config = &Config{/* иницијализација */}
}

func GetConfig() *Config {
    once.Do(loadConfig) // loadConfig ће бити позван само једном
    return config
}

Овим се обезбеђује да sync.Once обезбеђује безбедно, у више нитова, једнократно извршавање функције.