【发布时间】:2013-07-22 16:50:07
【问题描述】:
上下文:我有一个简单的 python 脚本,它每隔几秒将一堆文件写入 s3 (~70-100)。因为它受 I/O 限制,所以我想线程化写入过程,以便脚本执行得更好。我正在使用threading 来构建我的线程。
问题:因为我的线程是 a) 非守护进程 b) 如果我遍历我的线程列表并调用 .join(),它们只有 1 个任务要执行(写入文件)他们会完成任务并优雅地退出吗?我什至需要在这里打电话给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 是进行写入的类。
【问题讨论】:
标签: python multithreading io