اجرای همزمان کار در پایتون با Asyncio یک نسیم است

عکس پروفایل نویسنده

Asyncio در پایتون به طور فریبنده ای شهودی است و با شبه زمان واقعی / پردازش رویداد / ماهیت تک رشته ای به بسیاری از ویژگی های برنامه نویسی همزمان اجازه می دهد در حالی که از بسیاری از پیچیدگی های مرتبط با برنامه نویسی چند رشته ای / چند پردازشی جلوگیری یا پنهان می کند. در این مقاله با بررسی یک مسئله بسیار خاص قابلیت انعطاف پذیری برنامه asyncio بررسی می شود:

فرض کنید یک لیست وظیفه وجود دارد و روی هر کار در حال کار است. وقتی یک یا چند کار به پایان رسید ، کار یا وظایف دیگری باید شروع شود. این یک مشکل بسیار معمولی است که در آن محدودیتی در تعداد وظایف همزمان در اجرا وجود دارد ، اما تعداد کارها محدود نیست. در اینجا یک مثال معاصر آورده شده است: تجویز واکسن Covid 19 را در یک پارکینگ تصور کنید. چهار ایستگاه واکسیناسیون راه اندازی شده است. هر ایستگاه یک واکسن تزریق می کند که بین 1 تا 3 دقیقه به طول می انجامد. وظیفه تکمیل جعبه های واکسن با هر جعبه 100 دوز است.

شکل 1: شماتیک نحوه تزریق واکسن در پارکینگ

بگذارید ببینیم Python asyncio چگونه عکسها را اجرا می کند! قبل از اینکه بیش از حد مشتاق شوید ، اجازه دهید عنوان واقعی این مقاله را فاش و به طور خلاصه در مورد آن بحث کنم:اضافه کردن پویا وظایف جدید به لیستی از کارهای منتظر

شرح مشکل: لیستی از وظایف در حال اجرا است. هرجایی که بخواهید شرایط به وجود خواهد آمد …