בית התפתחות מהי מחסנית שיחה? - הגדרה מטכנולוגיה

מהי מחסנית שיחה? - הגדרה מטכנולוגיה

תוכן עניינים:

Anonim

הגדרה - מה המשמעות של שיחת סטאק?

ערימת שיחה, ב- C #, היא רשימת שמות השיטות הנקראות בזמן ריצה מתחילת תוכנית ועד לביצוע ההצהרה הנוכחית.

ערימת שיחות נועדה בעיקר כדי לעקוב אחר הנקודה שאליה צריכה כל תת-רוטינה פעילה להחזיר את השליטה כאשר היא מסיימת לבצע. ערימת השיחות משמשת ככלי לביצוע ניפוי באפליקציה כאשר ניתן לקרוא לשיטה שאפשר לייחס אליה ביותר מהקשר אחד. זה מהווה אלטרנטיבה טובה יותר מהוספת קוד מעקב לכל השיטות שקוראות לשיטה הנתונה. בכל פעם שנזרק חריג לכל מקום בקוד המשתמש, זמן השפה המשותף (CLR) יפתח את ערימת השיחות ויחפש את חסימת התפיסה כדי לקבוע את סוג החריגה הספציפי. אם אין מטפל מתאים, CLR יסיים את היישום. לפיכך, ערימת השיחות משמשת כדי לומר למצביע הביצוע לאן ללכת הלאה.

חברת Techopedia מסבירה את Call Stack

ערימת השיחות מאורגנת כ"ערימה ", מבנה נתונים בזיכרון לאחסון פריטים בצורה אחרונה-ראשונה, כך שהמתקשר של תת-הרוטינה דוחף את הכתובת החוזרת אל הערימה ואת תת-השערה הנקראת, לאחר סיום, קופץ את כתובת החזרה מערימת השיחה כדי להעביר את השליטה לכתובת זו.

ב- C # כל יישום מתחיל בשיטה "עיקרית", אשר בתורו מכנה שיטות אחרות. בכל קריאה לשיטה, השיטה מתווספת לראש הערימה ומוסרת מהערימה עם חזרתה למתקשר. כמו כן, היקף המשתנה המוצהר בבלוק נקבע מרגע שדחף את ערכו אל הערימה (כחלק מערימת השיחה) עד שהביצוע עוזב את הבלוק כאשר המשתנה וערימת השיחה נושרים מהערמה. לפיכך, הערימה שומרת על שני משתנים מקומיים (סוגי ערכים) וגם על ערימת השיחות (מסגרות ערימה), שגודלה מציין את המורכבות של תוכנית.

הגדרה זו נכתבה בהקשר של C #
מהי מחסנית שיחה? - הגדרה מטכנולוגיה