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)
}
}
Εδώ, το πλαίσιο επιτρέπει την ακύρωση μιας μακράς λειτουργίας αν ο πελάτης αποσυνδεθεί ή αν λήξει ο χρόνος, εξοικονομώντας πόρους και βελτιώνοντας την ανταπόκριση της εφαρμογής.