我想在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
。
我对如何执行此操作的最初想法包括注意此循环的开始时间,并适当调整睡眠时间,或者将线程基于由另一个线程递增的计数信号量。
这两者似乎都不必要地令人费解。有没有更好的方法来实现这一目标?