Junior — Middle
Ați folosit funcția Once în limbajul Go și cum ați folosit-o în proiectele dvs.?
sobes.tech AI
Răspuns de la AI
În limbajul Go, funcția sync.Once este utilizată pentru a garanta că o anumită bucată de cod se va executa exact o singură dată, chiar dacă apelul provine din mai multe goroutines simultan. Acest lucru este util, de exemplu, pentru inițializarea resurselor care trebuie create o singură dată.
Exemplu de utilizare:
var once sync.Once
func initialize() {
fmt.Println("Inițializare finalizată")
}
func main() {
for i := 0; i < 5; i++ {
go func() {
once.Do(initialize) // initialize va fi apelat doar o singură dată
}()
}
time.Sleep(time.Second) // Așteptăm finalizarea goroutine-urilor
}
În proiectele mele, am folosit sync.Once pentru inițializarea leneșă a configurației sau conexiunii la bazele de date, pentru a evita inițializările repetate și condițiile de cursă.