python函数没有使用threading.timer每n秒调用一次

时间:2015-01-20 04:08:26

标签: python multithreading timer

Class A:

  def get_data(self,arg1):

    ........

  def test(self):

    self.timer = threading.Timer(1,self.get_data, args=(arg1,))

    self.timer.start()
    ......

    self.timer.cancel()

尝试调用get_data()时,每隔一秒就调用一次。

代码的其他部分正在执行。没有sytax或缩进错误

观察到。请告诉我这里丢失的东西。

1 个答案:

答案 0 :(得分:1)

那是因为threading.Timer只调用一次目标函数(如下所示:https://docs.python.org/2/library/threading.html#timer-objects)。

你真正想做的是创建一个threading.Thread实例,其目标是一个带有无限循环的函数,调用get_data并休眠1秒。

并且您希望在达到某个条件时停止该循环 - 例如将running标志设置为False。这样,一旦你不再需要它就可以停止循环。