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