while True
我需要每隔 5 秒在一个循环内执行一段代码。我知道threading.Timer(5, foo).start()
它将每 5 秒运行一次,但我的foo()
函数取决于while
循环内的一个变量。
它foo
实际上是在另一个线程上运行的,我不想仅仅为了计时而阻塞当前线程。
+------------------------while #main-thread---------------------------------
|
+..........foo(val)..........foo(val)...........foo(val)............foo(val)
-5s- -5s- -5s- -5s-
像这样的东西:
def input(self):
vals = []
while True:
# fill the vals
# run `foo(vals)` every 5 seconds
def foo(vals):
print vals
有没有 Pythonic 的方式来做到这一点?