با استفاده از threading.Timer در پایتون، یک تابع بنویسید که هر n ثانیه یکبار یک پیغام همراه با زمان فعلی را چاپ کند و پس از m تکرار بهطور خودکار متوقف شود.
1.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:39 0.0
برای حل این مسئله از کلاس threading.Timer استفاده کنید که یک اجرای تکبار زمانبندیشده فراهم میکند؛ برای ایجاد رفتار دورهای درون تابع callback دوباره یک Timer جدید با همان تاخیر بسازید و یک شمارنده تکرار نگه دارید که وقتی به m رسید Timer را متوقف (cancel یا از ایجاد مجدد جلوگیری) کند. نکات: از پارامتر daemon=True برای Timerها استفاده کنید اگر میخواهید برنامه اصلی بتواند پایان یابد، از قفل ساده (threading.Lock) در صورت دسترسی همزمان به متغیر مشترک استفاده کنید و از انجام کارهای سنگین در callback خودداری کنید تا زمانبندی دقیقتری در سیستمهای Real-Time یا کاربردهای HPC داشته باشید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای پیادهسازی یک پیام هر n ثانیه با threading.Timer، callback باید یک Timer جدید با همان تاخیر بسازد تا رفتار دورهای ایجاد شود و یک شمارنده تا m تکرار نگه دارید تا پس از رسیدن به m، فعالیت متوقف گردد. اگر به متغیر مشترک دسترسی دارید از threading.Lock استفاده کنید تا race conditions جلوگیری شود. برای امکان خروج سریع از برنامه، Timer ها را به صورت daemon با تنظیم daemon=True ایجاد کنید و از انجام کارهای سنگین در callback پرهیز کنید تا زمانبندی دقیق حفظ شود.
گزارش