Junior — Middle
Da li ste koristili funkciju Once u jeziku Go i kako ste je koristili u svojim projektima?
sobes.tech АИ
Одговор од АИ
U jeziku Go, funkcija sync.Once koristi se za osiguranje da se određeni komad koda izvrši tačno jednom, čak i ako se poziv izvršava istovremeno iz više gorutina. Ovo je korisno, na primer, za inicijalizaciju resursa koji treba da budu kreirani samo jednom.
Primer upotrebe:
var once sync.Once
func initialize() {
fmt.Println("Inicijalizacija završena")
}
func main() {
for i := 0; i < 5; i++ {
go func() {
once.Do(initialize) // initialize će biti pozvano samo jednom
}()
}
time.Sleep(time.Second) // Čekamo da gorutine završe
}
U svojim projektima koristio sam sync.Once za lenju inicijalizaciju konfiguracije ili konekcije na bazu podataka, kako bih izbegao ponovnu inicijalizaciju i trke podataka.