یک برنامه پایتون بنویسید که با استفاده از threading.Timer هر ۲ ثانیه یک تابع را اجرا کند که مقدار شبیهسازیشده یا واقعیِ بار CPU را چاپ کند و پس از ۱۰ اجرا بهطور خودکار متوقف شود.
0.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:42 0.0
برای حل این مسئله از ماژول threading.Timer استفاده کنید؛ درون تابعی که اجرا میشود یک شمارنده افزایش دهید و مقدار بار CPU را با استفاده از psutil.cpu_percent() (اختیاری) یا مقدار شبیهسازیشده چاپ کنید؛ اگر شمارنده کمتر از ۱۰ بود، در انتهای تابع دوباره یک Timer جدید برنامهریزی کنید و در غیر این صورت اجرای دورهای را خاتمه دهید. نکات: Timer در یک ترد پسزمینه اجرا میشود و مناسب اعمال سبک و زمانبندی تقریبی است (برای سیستمهای واقعی با نیاز به دقت سختری، از راهکارهای RT یا زمانبندی سطح کرنل استفاده کنید)، از قفل اگر به دادههای مشترک دسترسی دارید بهره ببرید و کاری طولانی در callback انجام ندهید تا تداخل زمانی رخ ندهد؛ این الگو در مانیتورینگ زمانواقعی ساده و جمعآوری معیارها در محیطهای HPC مفید است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
توجه: threading.Timer در پسزمینه اجرا میشود تا تابع هر ۲ ثانیه اجرا شود، و دسترسی به دادههای مشترک باید با قفل مدیریت شود تا رقابت دادهای بهوجود نیاید. callback باید کوتاه باشد و کار طولانی در آن انجام نشود تا از تاخیر و تداخل جلوگیری شود؛ شمارنده را داخل تابع افزایش بدهید و پس از رسیدن به ۱۰ اجرا، timer را لغو کنید. اگر psutil در دسترس است، مقدار cpu_percent() را قبل از شروع اندازهگیری و در هر دوره چاپ کنید یا در صورت عدم دسترسی مقدار شبهبار را چاپ نمایید. در پایان هر دوره مطمئن شوید timer را cancel کنید تا منابع بهخوبی آزاد شوند و از خروج ناگهانی جلوگیری شود.
گزارش