Need for while True:
我不明白为什么下面的例子中需要"while true:"。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | import os import sys import subprocess import time from threading import Thread from Queue import Queue def worker(): while True: item = q.get() do_work(item) q.task_done() def do_work(item): time.sleep(item) print item q = Queue() for i in range(2): t = Thread(target=worker) t.daemon = True t.start() source = [2,3,1,4,5] for item in source: q.put(item) q.join() |
否则,一旦从队列处理第一个作业,工作线程就会退出。无限循环确保工作线程在完成时从队列中检索新作业。
更新:为了总结对我的(公认是仓促的)回答的评论:工作线程是daemonic(由