Junior — Middle
Go dilinde Once fonksiyonunu kullandınız mı ve projelerinizde nasıl kullandınız?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde, sync.Once fonksiyonu, belirli bir kod parçasının tam olarak bir kez çalışmasını garanti altına almak için kullanılır, hatta çağrı aynı anda birden fazla goroutine'den geliyorsa bile. Bu, örneğin, yalnızca bir kez oluşturulması gereken kaynakların başlatılması için faydalıdır.
Kullanım örneği:
var once sync.Once
func initialize() {
fmt.Println("Başlatma tamamlandı")
}
func main() {
for i := 0; i < 5; i++ {
go func() {
once.Do(initialize) // initialize yalnızca bir kez çağrılır
}()
}
time.Sleep(time.Second) // Goroutine'lerin tamamlanmasını bekliyoruz
}
Projelerimde, yapılandırma veya veritabanı bağlantısının tembel başlatılması için sync.Once kullandım, böylece tekrar eden başlatmalar ve yarış koşulları önlenmiş olur.