Python threading.Timer在执行函数

时间:2017-04-27 17:46:16

标签: python multithreading python-multithreading

我把快速线程测试放在一起:

import threading

def test():
    print "it don't work"
while True:
    threading.Timer(1, test).start()

它运行测试,但它不会等待。怎么了?

1 个答案:

答案 0 :(得分:2)

在每次循环迭代中,您将启动一个新线程。因此,您将达到允许线程的限制,您将获得例外:can't start new thread.

while True:
    threading.Timer(1, test).start()

您可以添加全局标志并等待该函数执行 - 您应该使用time.sleep来避免繁忙等待。

a = False
def test():
    global a
    print("hallo")
    a = True
threading.Timer(10, test).start()
while not a:
    time.sleep(1)
print('done')