我把快速线程测试放在一起:
import threading
def test():
print "it don't work"
while True:
threading.Timer(1, test).start()
它运行测试,但它不会等待。怎么了?
答案 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')