Junior — Middle
Go dilində Once funksiyasını istifadə etdinizmi və layihələrinizdə necə istifadə etdiniz?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində, sync.Once funksiyası müəyyən bir kod parçasının yalnız bir dəfə icra olunmasını təmin etmək üçün istifadə olunur, hətta çağırış eyni vaxtda bir neçə goroutine-dən gəlsə belə. Bu, məsələn, resursların yalnız bir dəfə yaradılmalı olduğu zamanlar üçün faydalıdır.
İstifadə nümunəsi:
var once sync.Once
func initialize() {
fmt.Println("İlkinləşdirmə tamamlandı")
}
func main() {
for i := 0; i < 5; i++ {
go func() {
once.Do(initialize) // initialize yalnız bir dəfə çağırılacaq
}()
}
time.Sleep(time.Second) // Goroutine-lərin tamamlanmasını gözləyirik
}
Layihələrimdə, sync.Once-dən konfigurasiya və ya verilənlər bazası bağlantısının tənbəl ilkinləşdirilməsi üçün istifadə etmişəm, təkrarlanan ilkinləşdirmələrin və yarış şərtlərinin qarşısını almaq üçün.