آدرس : تهران میدان فردوسی خیابان ایرانشهر بین سمیه و طالقانی مجتمع تجاری میلاد واحد 9

پشتیبانی 24 ساعته : 02188867940 – 09927674217

برای مشاهده لیست علاقه مندی ها وارد شوید!

مشاهده محصولات فروشگاه
0

هیچ محصولی در سبد خرید نیست.

حلقه رویداد چیست؟

دسته بندی :اخبار سایت 14 مارس 2023 علیرضا بابامرادی 73
حلقه رویداد

حلقه رویداد چیست؟

یک حلقه به طور مداوم در حال اجرا وجود دارد که با حلقه while نشان داده می شود، و هر تکرار این حلقه یک “تیک” نامیده می شود. برای هر تیک، اگر رویدادی در صف منتظر باشد، حذف و اجرا می‌شود. این رویدادها فراخوانی عملکرد شما هستند.

مهم است که توجه داشته باشید که setTimeout (..) پاسخ تماس شما را در صف حلقه رویداد قرار نمی دهد. کاری که انجام می دهد تنظیم تایمر است. هنگامی که تایمر منقضی می شود، محیط تماس شما را در حلقه رویداد قرار می دهد، به طوری که برخی از تیک های آینده آن را انتخاب کرده و اجرا می کنند.

اگر در آن لحظه 20 مورد در حلقه رویداد وجود داشته باشد، چه؟ پاسخ تماس شما منتظر می ماند. پشت سر بقیه در صف قرار می گیرد — به طور معمول راهی برای جلوگیری از صف و پرش به جلو در صف وجود ندارد. این توضیح می دهد که چرا تایمرهای setTimeout (..) ممکن است با دقت زمانی کامل کار نکنند. به شما تضمین می‌شود (تقریباً) که پاسخ تماس شما قبل از بازه زمانی که مشخص کرده‌اید فعال نمی‌شود، اما بسته به وضعیت صف رویداد، ممکن است در آن زمان یا بعد از آن رخ دهد.

بنابراین، به عبارت دیگر، برنامه شما به طور کلی به تعداد زیادی تکه کوچک تقسیم می شود، که یکی پس از دیگری در صف حلقه رویداد اتفاق می افتد. و از نظر فنی، رویدادهای دیگری که مستقیماً با برنامه شما مرتبط نیستند نیز می توانند در صف قرار بگیرند.

توجه: ما “تا همین اواخر” را در رابطه با تغییر ماهیت محل مدیریت صف حلقه رویداد در ES6 ذکر کردیم.

این بیشتر جنبه فنی رسمی است، اما ES6 اکنون نحوه عملکرد حلقه رویداد را مشخص می‌کند، به این معنی که از نظر فنی به جای محیط میزبانی، در اختیار موتور JS است. یکی از دلایل اصلی این تغییر، معرفی ES6 Promises است که در فصل 3 درباره آن بحث خواهیم کرد، زیرا آنها به توانایی کنترل مستقیم و دقیق بر عملیات زمان بندی در صف حلقه رویداد نیاز دارند (به بحث (0..)setTimeout مراجعه کنید. در بخش “همکاری”).

 

نخ موازی

ادغام اصطلاحات “ناهمگام” و “موازی” بسیار رایج است، اما آنها در واقع کاملاً متفاوت هستند. به یاد داشته باشید، async در مورد شکاف بین اکنون و بعد است. اما موازی در مورد چیزهایی است که می توانند به طور همزمان رخ دهند.

رایج ترین ابزارها برای محاسبات موازی فرآیندها و رشته ها هستند. فرآیندها و رشته ها به طور مستقل اجرا می شوند و ممکن است به طور همزمان اجرا شوند: در پردازنده های جداگانه یا حتی رایانه های جداگانه، اما چندین رشته می توانند حافظه یک فرآیند واحد را به اشتراک بگذارند.

در مقابل، یک حلقه رویداد، کار خود را به وظایف تقسیم می‌کند و آنها را به صورت سریالی اجرا می‌کند و دسترسی موازی و تغییرات در حافظه مشترک را ممنوع می‌کند. موازی گرایی و «سریالیسم» می توانند در قالب حلقه های رویداد همکاری در رشته های جداگانه وجود داشته باشند.

درهم آمیختن رشته های موازی اجرا و درهم آمیختن رویدادهای ناهمزمان در سطوح بسیار متفاوتی از دانه بندی رخ می دهد.

علیرضا بابامرادی

راه آسان‌تری برای ارتباط با کاربران‌مان پیدا کرده‌ایم :) عضویت در کانال

مطالب زیر را حتما بخوانید:

قوانین ارسال دیدگاه در سایت

  • چنانچه دیدگاهی توهین آمیز باشد تایید نخواهد شد.
  • چنانچه دیدگاه شما جنبه ی تبلیغاتی داشته باشد تایید نخواهد شد.
  • چنانچه از لینک سایر وبسایت ها و یا وبسایت خود در دیدگاه استفاده کرده باشید تایید نخواهد شد.
  • چنانچه در دیدگاه خود از شماره تماس، ایمیل و آیدی تلگرام استفاده کرده باشید تایید نخواهد شد.
  • چنانچه دیدگاهی بی ارتباط با موضوع آموزش مطرح شود تایید نخواهد شد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

لینک کوتاه:
0