Σπίτι Ανάπτυξη Τι είναι μια στοίβα κλήσεων; - ορισμός από την τεχνολογία

Τι είναι μια στοίβα κλήσεων; - ορισμός από την τεχνολογία

Πίνακας περιεχομένων:

Anonim

Ορισμός - Τι σημαίνει Call Stack;

Μια στοίβα κλήσεων, στο C #, είναι η λίστα των ονομάτων των μεθόδων που ονομάζονται κατά το χρόνο εκτέλεσης από την αρχή ενός προγράμματος μέχρι την εκτέλεση της τρέχουσας δήλωσης.

Μια στοίβα κλήσεων προορίζεται κυρίως να παρακολουθεί το σημείο στο οποίο κάθε ενεργή υπορουτίνα πρέπει να επιστρέψει τον έλεγχο όταν τελειώσει την εκτέλεση. Η στοίβα κλήσεων χρησιμεύει ως εργαλείο για τον εντοπισμό σφαλμάτων σε μια εφαρμογή, όταν η μέθοδος που πρέπει να εντοπιστεί μπορεί να καλείται σε περισσότερα από ένα πλαίσια. Αυτό αποτελεί καλύτερη εναλλακτική λύση από την προσθήκη κώδικα παρακολούθησης σε όλες τις μεθόδους που ονομάζουν τη δεδομένη μέθοδο. Κάθε φορά που μια εξαίρεση πέφτει οπουδήποτε στον κώδικα χρήστη, το Common Language Runtime (CLR) θα ξετυλίξει τη στοίβα κλήσεων και θα αναζητήσει το μπλοκ catch για να καθορίσει τον συγκεκριμένο τύπο εξαίρεσης. Εάν δεν υπάρχει κατάλληλος χειριστής, η CLR θα τερματίσει την εφαρμογή. Συνεπώς, η στοίβα κλήσεων χρησιμοποιείται για να λέει στον δείκτη εκτέλεσης πού να πάει στη συνέχεια.

Η Techopedia εξηγεί το Call Stack

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

Στο C #, κάθε εφαρμογή αρχίζει με μια "κύρια" μέθοδο, η οποία με τη σειρά της καλεί άλλες μεθόδους. Σε κάθε κλήση σε μια μέθοδο, η μέθοδος προστίθεται στην κορυφή της στοίβας και αφαιρείται από τη στοίβα κατά την επιστροφή της στον καλούντα. Επίσης, το εύρος μιας μεταβλητής που δηλώνεται σε ένα μπλοκ καθορίζεται από τη στιγμή που η τιμή της ωθείται πάνω στη στοίβα (ως μέρος της στοίβας κλήσεων) έως ότου η εκτέλεση εγκαταλείψει το μπλοκ όταν η μεταβλητή και η στοίβα κλήσεων ξεσηκωθούν από τη στοίβα. Έτσι, η στοίβα διατηρεί τόσο τις τοπικές μεταβλητές (τύπους τιμών) όσο και τη στοίβα κλήσεων (πλαίσια στοίβας), το μέγεθος της οποίας υποδηλώνει την πολυπλοκότητα ενός προγράμματος.

Ο ορισμός αυτός γράφτηκε στο πλαίσιο του C #
Τι είναι μια στοίβα κλήσεων; - ορισμός από την τεχνολογία