我正在阅读《Python标准库实例》这本书,但当我翻到第509页时感到有些困惑。
在此之前,示例程序隐式地等待所有线程完成其工作后才退出。有时候程序会生成一个作为守护进程运行的线程,以免阻止主程序退出。
但是,当我运行了一些代码后,得到了相反的结果。代码如下:
#!/usr/bin/env python
# encoding: utf-8
#
# Copyright (c) 2008 Doug Hellmann All rights reserved.
#
"""Creating and waiting for a thread.
"""
#end_pymotw_header
import threading
import time
def worker():
"""thread worker function"""
print 'Worker'
# time.sleep(10000)
return
threads = []
for i in range(5):
t = threading.Thread(target=worker)
threads.append(t)
t.start()
print "main Exit"
有时候结果会是这样:
Worker
Worker
WorkerWorker
main Exit
Worker
我想问一下,在Python启动几个线程后,主线程何时退出?