Sobes.tech
Junior — Middle

Περιγράψτε μια κατάσταση στην οποία η χρήση των συμφραζομένων θα ήταν δικαιολογημένη και αποτελεσματική.

sobes.tech AI

Απάντηση από AI

Στο Go, τα πλαίσια (context.Context) χρησιμοποιούνται για τη διαχείριση του χρόνου ζωής των λειτουργιών, ειδικά σε ασύγχρονες ή δικτυακές κλήσεις. Για παράδειγμα, αν έχετε έναν διακομιστή HTTP που επεξεργάζεται αιτήματα και θέλετε να ακυρώσετε την επεξεργασία αν ο πελάτης διακόψει τη σύνδεση ή αν ο χρόνος αναμονής υπερβεί το όριο, η χρήση του πλαισίου θα είναι κατάλληλη.

Παράδειγμα:

func handler(w http.ResponseWriter, r *http.Request) {
    ctx := r.Context()
    select {
    case <-time.After(5 * time.Second):
        fmt.Fprintln(w, "Ολοκλήρωση επεξεργασίας")
    case <-ctx.Done():
        err := ctx.Err()
        fmt.Println("Το αίτημα ακυρώθηκε ή ο χρόνος εξαντλήθηκε:", err)
    }
}

Εδώ, το πλαίσιο επιτρέπει την ακύρωση μιας μακράς λειτουργίας αν ο πελάτης αποσυνδεθεί ή αν λήξει ο χρόνος, εξοικονομώντας πόρους και βελτιώνοντας την ανταπόκριση της εφαρμογής.