我调用 join ,所以我不明白为什么主线程在所有线程完成之前打印“结束”。 输出是:
End
Thread
Thread
其他相关问题: 只是为了确定是否将daemon flag设置为true,是否意味着调用加入没有意义(因为还有守护线程时main可以完成)?
#!/usr/bin/env python
import sys
import threading
from time import sleep
num_worker_threads = 2
threads = []
def worker():
sleep(1)
print 'Thread'
for i in range(num_worker_threads):
t = threading.Thread(target=worker)
threads.append(t)
t.start()
t.join
print 'End'
请您参考如下方法:
因为你实际上并没有调用join。替换:
t.join
与:
t.join()
重点是t.join表达式返回绑定(bind)方法对象,加括号使expression成为方法调用。
加入线程只对用户线程重要,守护线程不会阻塞主线程完成。
