Sobes.tech
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.