阅读后:http://pymotw.com/2/threading/#daemon-vs-non-daemon-threads我希望以下代码在2秒后终止:
from threading import Thread
from time import sleep
def a():
i = 0
while 1:
print i
i+=1
t = Thread(target=a)
t.setDaemon(True)
t.run()
sleep(2)
但是,它会永久保持打印数字。我在这里错过了什么吗?我在win7上。我从Windows shell获得相同的行为并且空闲。
答案 0 :(得分:4)
您应该致电t.start()
,而不是t.run()
。第一个将生成一个新线程并从那里调用run
。调用自己运行会导致您在当前线程中执行a
函数。