טיוטה:Event Loop

מתוך ויקיפדיה, האנציקלופדיה החופשית

במדעי המחשב, לולאת האירועים (Event Loop) היא מודל תכנותי ותבנית עיצוב (Design pattern) שממתינה ושולחת אירועים או הודעות בתוך תוכנית מחשב. לולאת האירועים פועלת באמצעות הגשת בקשה ל"ספק אירועים" כלשהו, פנימי או חיצוני, שבדרך כלל חוסם את הבקשה עד שהגיע האירוע, ולאחר מכן קורא למטפל באירוע (event handler) הרלוונטי ושולח את האירוע. זוהי שיטה נפוצה המשמשת ליישום שרתים כמו שרתי אינטרנט.

מימושים[עריכת קוד מקור | עריכה]

HTML / Javascript[עריכת קוד מקור | עריכה]

עמוד אינטרנט וקוד ה-JavaScript שלו, פועלים בדרך כלל באמצעות תהליכון אחד בלבד (single thread), כלומר שרק תהליך אחד אחראי לבצע את כל הפעולות במערכת.

תהליך הדפדפן (thread) עוסק בהודעות מתוך תור האירועים (event queue), אחת בכל פעם. לולאת האירועים פועלת כדי לנהל את תהליכי ביצוע התוכנית. ה-thread מכניס פעולות לתוך תור האירועים ומבצע אותן על פי סדר ההגעה, כל עוד אין פעולות אחרות בתור.

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