我有以下代码,但它在队列为空后仍然存在,任何见解:
def processor():
while(1>0):
if queue.empty() == True:
print "the Queue is empty!"
break
source=queue.get()
page = urllib2.urlopen(source)
print page
def main:
for i in range(threads):
th = Thread(target=processor)
th.setDaemon(True)
th.start()
queue.join()
它打印 queue empty 的次数与我有线程的次数一样多,只是站在那里什么都不做。
最佳答案
打印页面后需要调用queue.task_done(),否则join()会阻塞。每个线程在使用 get() 之后必须调用 task_done()。
关于python - 在 python 中结束线程的生命?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6227058/