یک برنامهٔ پایتون بنویسید که با استفاده از ماژول concurrent.futures چند وظیفهٔ شبیه‌سازی‌شده (مثلاً پردازش یا خواندن/نوشتن کوچک) را به‌صورت هم‌زمان اجرا کند و زمان کل اجرا و میانگین تأخیر هر وظیفه را گزارش دهد.

4.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:17

0.0

برای حل این مسئله از concurrent.futures (ThreadPoolExecutor یا ProcessPoolExecutor) و time.perf_counter برای اندازه‌گیری زمان استفاده کنید؛ هر وظیفه را با یک تابع شبیه‌سازی‌کننده که یا time.sleep یا یک محاسبهٔ ساده انجام می‌دهد پیاده‌سازی کنید، سپس با ارسال وظایف به executor و جمع‌آوری نتایج با as_completed زمان شروع/پایان هر وظیفه را ثبت کرده و مجموع و میانگین تأخیر را محاسبه کنید. نکته‌ها: برای I/O-bound از ThreadPoolExecutor و برای CPU-bound از ProcessPoolExecutor استفاده کنید، به محدودیت GIL توجه داشته باشید، و این برنامه صرفاً برای بررسی هم‌زمانی و اندازه‌گیری تأخیر مناسب است نه برای تضمین رفتار سختِ زمان‌بندی‌شده در سیستم‌های بلادرنگ یا بارهای HPC واقعی.

توسط پژوهشگر در 201 روز قبل ساعت 03:17
دسته بندی ها: Python Python for beginner
reyhaneh در 201 روز قبل ساعت 06:56

برای پیاده‌سازی درست از time.perf_counter بهره ببرید و با استفاده از as_completed زمان شروع و پایان هر وظیفه را ثبت کنید تا کل زمان و میانگین تأخیر محاسبه شود. اگر کار شما I/O-bound است ThreadPoolExecutor مناسب است و برای CPU-bound از ProcessPoolExecutor استفاده کنید تا محدودیت GIL لحاظ شود. حداکثر تعداد_workers را با توجه به منابع سیستم تنظیم کنید تا تعادل بین سربار مدیریت وظیفه و بهره‌وری حفظ شود. یادداشت کنید که شبیه‌سازی با time.sleep یا محاسبات ساده می‌تواند تفاوت‌های کوچکی ایجاد کند، پس هدف اندازه‌گیری هم‌زمانی است نه زمان‌بندی سخت‌گیرانه.

گزارش

1 پاسخ

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

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