gpt4 book ai didi

python - 非守护进程 python 线程在完成任务后会退出吗?

转载 作者:太空宇宙 更新时间:2023-11-03 18:53:22 24 4
gpt4 key购买 nike

上下文:我有一个简单的 python 脚本,每隔几秒将一堆文件写入 s3 (~70-100)。由于其 I/O 限制,我希望对写入过程进行线程化,以便脚本执行得更好。我正在使用线程来构建我的线程。

问题:由于我的线程 a) 非守护进程 b) 它们只有 1 个任务要执行(写入文件),如果我循环遍历线程列表并调用 .join() 他们会完成任务并优雅地退出吗?我是否需要在此处调用 join() 还是它们完成后就会退出?我相信 join() 是通往这里的方法,但由于我对 python 很陌生,我不知道我不知道什么......

这里有一些简化的代码供引用:

buildOutput() #calls the section below 
for thread in threads:
thread.join()
time.sleep(60)

通话:

  for item in out[fileRoot]: 
#write individiual files
key = findKey(item, FILE_KEY)
full_key = FILE_PATH + str(key) + FILE_TYPE
t = FileWriter(item, full_key)
t.start()
threads.append(t) #global threads list for the script

其中 FileWriter 是执行写入操作的类。

最佳答案

Join 确保主线程将等待,直到加入的线程完成其任务。有一个很好的ascii艺术给出here .

因此,当子线程执行 I/O 时,最好使用 join,以防止出现任何意外行为。

关于python - 非守护进程 python 线程在完成任务后会退出吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17793101/

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