Junior — Middle
Használta az Once funkciót a Go nyelvben, és hogyan alkalmazta projektjeiben?
sobes.tech MI
Válasz az MI-től
Go nyelven a sync.Once függvényt arra használják, hogy garantálják, egy adott kódrész csak egyszer fusson le, még akkor is, ha a hívás több goroutine-ból történik egyszerre. Ez hasznos például olyan erőforrások inicializálására, amelyeket csak egyszer kell létrehozni.
Használati példa:
var once sync.Once
func initialize() {
fmt.Println("Inicializálás befejezve")
}
func main() {
for i := 0; i < 5; i++ {
go func() {
once.Do(initialize) // initialize csak egyszer hívódik meg
}()
}
time.Sleep(time.Second) // Várunk a goroutine-ok befejezésére
}
Projekteimben a sync.Once-t a konfiguráció vagy az adatbázis-kapcsolat késleltetett inicializálására használtam, hogy elkerüljem az ismételt inicializálásokat és a versenyhelyzeteket.