Junior — Middle
Vai esat izmantojis funkciju Once Go valodā un kā to izmantojāt savos projektos?
sobes.tech AI
Atbilde no AI
Go valodā funkcija sync.Once tiek izmantota, lai nodrošinātu, ka noteikts koda gabals tiks izpildīts tieši vienu reizi, pat ja izsaukums notiek vienlaikus no vairākām gorutīnām. Tas ir noderīgi, piemēram, resursu inicializācijai, kas jāizveido tikai vienreiz.
Piemērs lietošanai:
var once sync.Once
func initialize() {
fmt.Println("Inicializācija pabeigta")
}
func main() {
for i := 0; i < 5; i++ {
go func() {
once.Do(initialize) // initialize tiks izsaukts tikai vienu reizi
}()
}
time.Sleep(time.Second) // Gaidām gorutīnu pabeigšanu
}
Savās projektos esmu izmantojis sync.Once konfigurācijas vai datu bāzes savienojuma vēlā inicializācijai, lai izvairītos no atkārtotas inicializācijas un sacensības stāvokļiem.