مقایسه برنامه نویسی asynchronous و synchronous

synchronous

در زبان های synchronous در هر لحظه تنها ۱ پردازش قابل اجراء است. این programming paradigm یا الگوی برنامه نویسی معمولا به علت ورودی/خروجی ها یا I/O ها باعث رخ دادن bottleneck و منتظر ماندن پردازش های دیگر می‌شود, و پردازنده مدت زمان زیادی را باید منتظر بماند.

امروزه زبان های بسیار اندکی از این الگو پیروی می‌کنند, و مفسر هایی به مانند CPython که ۱ نخی هستند نیز با روش های مختلفی پردازش هارا asynchronous می‌کنند.

asynchronous


برنامه نویسی asynchronous نوعی برنامه نویسی موازی یا parallel است 1. این الگوی برنامه نویسی اجازه می‌دهد تا نرم افزار منتظر پردازش های blocking یا مانع شوند نماند, و اگر پردازشی برای ادامه نیاز به I/O داشت در همان لحظه پردازش دیگری اجرا شود.

منظور از blocking operation پردازشی است که تا تمام نشدن پردازش خود مانع اجرای پردازش های دیگر می‌شود.

در زبان های asynchronous در صورت پیروی از الگوی asynchornous دیگر مشکل bottleneck وجود نخواهد داشت. برنامه نویسی چند نخی نیز شیوه ای از برنامه نویسی asynchornous است. 2

  1. When to Use (and Not to Use) Asynchronous Programming: 20 Pros Reveal the Best Use Cases ^
  2. The Difference Between Asynchronous And Multi-Threading ^

ارجاع