下面是一些使用线程的基本代码:import Queue
import threading
def basic_worker(queue):
while True:
item = queue.get()
# do_work(item)
print(item)
queue.task_done()
def basic():
# http://docs.python.org/library/queue.html
queue = Queue.Queue()
for i in range(3):
t = threading.Thread(target=basic_worker,args=(queue,))
t.daemon = True
t.start()
for item in range(4):
queue.put(item)
queue.join() # block until all tasks are done
print('got here')
basic()
当你运行它,你得到% test.py
0
1
2
3
got here
现在评论一下:t.daemon = True
再次运行它,您将看到脚本打印相同的结果,但挂起。
主线程结束(注意got here已打印),但第二个线程从未结束。
相反,当t.daemon设置为True时,线程t在主线程结束时终止。
注意,“守护进程线程”与daemon processes没有什么关系。