Senior
Ar praktikoje naudoji kontekstus? Papasakok.
sobes.tech AI
Atsakymas iš AI
Taip, aš reguliariai naudoju kontekstus Go kalboje, ypač vykdymo laiko valdymui ir operacijų atšaukimui tinklo užklausose ir gorutinuose. Kontekstas leidžia perduoti atšaukimo signalus ir laiko limitus per kvietimų grandinę, kas padeda išvengti gorutinos nutekėjimo ir kontroliuoti vykdymo laiką.
Naudojimo pavyzdys:
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
select {
case <-time.After(3 * time.Second):
fmt.Println("operacija baigta")
case <-ctx.Done():
fmt.Println("operacija atšaukta arba pasibaigė laikas")
}
Jei operacija trunka ilgiau nei 2 sekundes, ji bus nutraukta, tai pagerina programos patikimumą ir reagavimo greitį.