gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 08:17:22 25 4
gpt4 key购买 nike

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

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

关于python - 为什么主线程在所有线程加入之前打印结束行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11954094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com