با استفاده از 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 تا پایان همهٔ تسک‌ها صبر می‌کند.

توسط پژوهشگر در 220 روز قبل ساعت 02:13
دسته بندی ها: Python Python for beginner
sara در 220 روز قبل ساعت 10:31

برای هم‌زمان‌سازی سه وظیفه IO-bound از asyncio.sleep استفاده کنید و با create_task آن‌ها را آغاز کنید و در نهایت با await asyncio.gather(...) منتظر پایان همه باشید تا زمان کل با time.monotonic اندازه‌گیری شود. هر کدام از coroutines باید از آغاز و پایان با پرینت گزارش دهند تا روند هم‌زمانی واضح باشد. از asyncio.run به عنوان نقطه ورود استفاده کنید تا روال اجرای رویداد حلقه‌ای به درستی مدیریت شود. اگر یکی از تسک‌ها نیاز به لغو داشت، از cancellation و مدیریت استثناء‌های مربوطه استفاده کنید تا برنامه پایدار بماند.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری