我想在python中以高频率执行任务,其中任务执行时间相对于句点来说很高。
通常情况下,我会使用一个重新发布自己的帖子,例如:
from threading import Thread
class PeriodicThread(Thread):
def run(self):
while 1:
self.f(*self.args, **self.kwargs)
sleep(self.period)
但是,这仅适用于self.f
的执行时间与self.period
相比可忽略不计的情况。
我对如何执行此操作的初步想法将涉及记录此循环的开始时间,并适当地调整休眠时间,或者使线程基于另一个线程增加的计数信号量。
这些似乎都不必要地复杂化了。有没有更好的方法来实现这一目标?