فرض کنید برای تعوض کارت به بانک مراجعه می کنید. در بانک یک باجه برای تعویض کارت در نظر گرفته شده است. اول صبح است و شما اولین مشتری هستید. متصدی بانک قبل از انجام هر کاری به شما یک فرم می دهد که پر کنید. پر کردن فرم 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 سریعترین بخش رایانه است و سخت بتوان از آن فراتر رفت. بهترین راه بالا بردن بازدهی در این موارد استفاده از پردازشگرهای چند هسته ای و برنامه نویسی موازی است. در واقع باید تعداد متصدیان بانک را افزایش داد.