Sobes.tech
Senior

Hast du Kontexte in der Praxis verwendet? Erzähle mir.

sobes.tech KI

Antwort von AI

Ja, ich habe in Go regelmäßig mit Kontexten gearbeitet, insbesondere um die Laufzeit zu steuern und Operationen in Netzwerkanfragen und Goroutines abzubrechen. Der Kontext ermöglicht das Übertragen von Abbruchsignalen und Zeitlimits durch die Aufrufkette, was hilft, Goroutine-Lecks zu vermeiden und die Laufzeit zu kontrollieren.

Beispiel für die Verwendung:

ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()

select {
case <-time.After(3 * time.Second):
    fmt.Println("Operation abgeschlossen")
case <-ctx.Done():
    fmt.Println("Operation abgebrochen oder zeitüberschritten")
}

Wenn die Operation also länger als 2 Sekunden dauert, wird sie abgebrochen, was die Stabilität und Reaktionsfähigkeit der Anwendung erhöht.