Junior — Middle
Go-da iş parçalarının sinxronizasiyasında sync.Once növünün əsas rolu nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində sync.Once tipi, müəyyən bir kod parçasının, ona çoxsaylı iş parçacığından (goroutine) müraciət olunsa belə, dəqiq bir dəfə icra olunmasını təmin etmək üçün istifadə olunur.
Əsas rolu resursların təhlükəsiz şəkildə başlanmasıdır (məsələn, singleton yaratmaq), yarış şəraitlərini və təkrarlanan icraları qarşısını almaq.
İstifadə nümunəsi:
var once sync.Once
var config *Config
func loadConfig() {
config = &Config{/* başlanğıc */}
}
func GetConfig() *Config {
once.Do(loadConfig) // loadConfig yalnız bir dəfə çağırılacaq
return config
}
Beləliklə, sync.Once funksiyanın çox iş parçacığı mühitində təhlükəsiz və yalnız bir dəfə icra olunmasını təmin edir.