结束python中线程的生命?

Max*_*Max 4 python multithreading

我有以下代码,但它在队列为空后仍然存在,任何见解:

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()  
Run Code Online (Sandbox Code Playgroud)

它打印队列为空的次数与我有线程的次数一样,只是站在那里什么都不做。

Thi*_*ves 5

打印页面后需要调用 queue.task_done() ,否则 join() 会阻塞。每个线程在使用 get() 后必须调用 task_done()。

查看队列文档