آموزش Asyncوawaitدربرنامه نویسی Asp.net MVC Core

گروه نرم افزاری هیلتن
گروه نرم افزاری هیلتن
35 بار بازدید - 3 سال پیش - آشنایی با Async Await فرض
آشنایی با Async Await فرض کنید برای تعویض کارت به بانک مراجعه می کنید. در بانک یک باجه برای تعویض کارت در نظر گرفته شده است. اول صبح است و شما اولین مشتری هستید. متصدی بانک قبل از انجام هر کاری به شما یک فرم می دهد که پر کنید. پر کردن فرم 5 دقیقه زمان می برد. در این مدت متصدی بیکار است . بعد از تکمیل فرم و تحویل آن به متصدی در کمتر از 1 دقیقه اطلاعات شما وارد سیستم شده و کارهای آن انجام میشود. سپس 5 دقیقه دیگر باید منتظر بمانید تا کارت جدید شما چاپ و آماده شود. در این مدت هم متصدی بانک بیکار است. کارت شما بعد از 11 دقیقه آماده میشود و می توانید بانک را ترک کنید. در اینجا در دو مرحله متصدی بانک بیکار بود و منتظر ورود (پر کردن فرم) و یا خروج اطلاعات (چاپ کارت) بود. اما خود عملیات بانکی زمان زیادی نگرفت. وقتی ورود و خروج اطلاعات از پردازش آن زمان به مراتب بیشتری میگیرد عملیات Input/Output Bound است. یعنی مدت اجرای عملیات به مدت ورود و خروج اطلاعات بستگی دارد. وقتی عملیات I/O Bound باشد استفاده از تکنیک Async می تواند بهره وری سیستم را افزایش دهد. فرض کنید در مثال بالا 4 نفر دیگر جهت تعویض کارت به بانک مراجعه کنند. اگر متصدی بانک از روش Sync استفاده کند آن 4 نفر باید منتظر پایان کارافراد جلوتر در صف باشند. یعنی انجام کار همه ی افراد مدت 55 دقیقه زمان میبرد. اما اگر کارها به روش Async انجام شود متصدی بانک بلافاصله بعد از آنکه فرم را به شما داد آزاد می شود و می تواند در زمانی که شما فرم را پر می کنید درخواستهای 4 نفر دیگر را بررسی کند . با روش Async کل کار در15 دقیقه انجام میشود و همه ی کارتها با اختلاف زمانی 1 دقیقه از هم تحویل میشود. در این روش مدت زمان واحد هر کار ثابت است و عملیات تعویض کارت همیشه 11 دقیقه طول میکشد. اما از آنجایی که متصدی بانک بجای بیکار بودن درخواستهای بعدی صف را شروع می کند کل کارها 4 برابر سریعتر به انجام میرسد. روش Async در عملیات های I/O Bound فوق العاده موثر عمل می کند. کار با دیتابیس و فایل در سرور از نوع I/O Bound است و همیشه می توانید از تکنیک Async برای بالا بردن بازدهی سرور استفاده کنید. وقتی عملیات از نوع CPU Bound باشد استفاده از Async کمک زیادی نمی کند. در مثال بالا پردازش اطلاعات کارت یعنی کاری که توسط متصدی بانک انجام میشود CPU bound است. معمولا عملیات های محاسباتی که درون CPU انجام میشود به خودی خود سریع است. در واقع CPU سریعترین بخش رایانه است و سخت بتوان از آن فراتر رفت یا آن را دور زد. بهترین راه بالا بردن بازدهی در این موارد استفاده از پردازشگرهای چند هسته ای است که به آن برنامه نویسی موازی هم گفته میشود. دانلود از وبسایتwww.heilton.com
3 سال پیش در تاریخ 1400/09/08 منتشر شده است.
35 بـار بازدید شده
... بیشتر