我有一个简单的 python 应用程序,如果我使用 queue.join(),它不会终止。下面是代码:
import threading
import Queue
q = Queue.Queue()
for i in range(5):
q.put("BLAH")
def worker():
while True:
print q.qsize()
a = q.get()
print q.qsize()
q.task_done()
print q.qsize()
for i in range(2):
t = threading.Thread(target=worker())
t.daemon = True
t.start()
q.join()
我还创建了一个看门狗线程,它打印的 threading.enumerate(),然后休眠 2 秒。唯一剩下的线程是 MainThread,队列大小实际上是 0。这个脚本永远不会终止。我必须ctrl + z,然后杀死它。这是怎么回事?