با استفاده از asyncio در پایتون برنامهای بنویسید که سه تابع شبیهسازیشده I/O-bound (هر کدام با asyncio.sleep با مدتهای متفاوت) را بهصورت همزمان اجرا کند و زمان شروع، پایان هر وظیفه و زمان کل اجرا را چاپ کند.
3.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 02:13 0.0
برای حل این مسئله از ماژول asyncio استفاده کنید: سه coroutine تعریف کنید که هنگام شروع و پایان با print گزارش میدهند و داخل هر کدام از asyncio.sleep با مقادیر متفاوت استفاده کنید تا رفتار همزمانی مشاهده شود. در تابع اصلی از asyncio.create_task برای راهاندازی همزمان یا asyncio.gather برای انتظار همزمان روی همهی وظایف استفاده کنید و با time.monotonic() زمان کل اجرا را محاسبه کنید. نکات مفید: از asyncio.run بهعنوان نقطهٔ ورود استفاده کنید، create_task نشاندهندهٔ اجرای همزمان است و await gather تا پایان همهٔ تسکها صبر میکند.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای همزمانسازی سه وظیفه IO-bound از asyncio.sleep استفاده کنید و با create_task آنها را آغاز کنید و در نهایت با await asyncio.gather(...) منتظر پایان همه باشید تا زمان کل با time.monotonic اندازهگیری شود. هر کدام از coroutines باید از آغاز و پایان با پرینت گزارش دهند تا روند همزمانی واضح باشد. از asyncio.run به عنوان نقطه ورود استفاده کنید تا روال اجرای رویداد حلقهای به درستی مدیریت شود. اگر یکی از تسکها نیاز به لغو داشت، از cancellation و مدیریت استثناءهای مربوطه استفاده کنید تا برنامه پایدار بماند.
گزارش