Skip to main content
 首页 » 编程设计

python之为什么主线程在所有线程加入之前打印结束行

2025年05月04日18myhome

我调用 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成为方法调用。

加入线程只对用户线程重要,守护线程不会阻塞主线程完成。