Python中的守护线程

4

阅读完: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和idle表现相同。
1个回答

4
您应该调用 t.start(),而不是 t.run()。第一个会生成一个新的线程,并从那里调用 run。自己调用 run 会导致您在当前线程中执行 a 函数。

1
答案比我想象的简单多了 :) - yasar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接