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 和空闲中得到相同的行为。

4

1 回答 1

4

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

于 2013-08-09T09:54:23.563 回答