Junior — Middle
Hai usato la funzione Once nel linguaggio Go e come l'hai utilizzata nei tuoi progetti?
sobes.tech AI
Risposta dell'AI
Nel linguaggio Go, la funzione sync.Once viene utilizzata per garantire che un determinato pezzo di codice venga eseguito una sola volta, anche se la chiamata avviene da più goroutine contemporaneamente. Questo è utile, ad esempio, per l'inizializzazione di risorse che devono essere create una sola volta.
Esempio di utilizzo:
var once sync.Once
func initialize() {
fmt.Println("Inizializzazione completata")
}
func main() {
for i := 0; i < 5; i++ {
go func() {
once.Do(initialize) // initialize verrà chiamato solo una volta
}()
}
time.Sleep(time.Second) // Aspettiamo che le goroutine finiscano
}
Nei miei progetti, ho usato sync.Once per l'inizializzazione pigra della configurazione o della connessione al database, per evitare inizializzazioni ripetute e condizioni di gara.