提问人:ciyer 提问时间:5/10/2023 更新时间:5/10/2023 访问量:23
在我的情况下,python 中的多线程 IO 任务对性能没有帮助
Multi threading IO tasks in python doesnt help performance in my case
问:
我有一个需要读取的文件列表。但是,阅读它们需要一段时间。我尝试使用线程库,但似乎没有帮助。
def readFromLog():
#does something with log files
def singleThreadReader(logFiles):
for i in range(len(logFiles)):
readFromLog(logFiles[i])
def multiThreadReader(logFiles):
threads = [threading.Thread(target=readFromLog, args=(log_file,)) for log_file in logFiles]
for thread in threads:
thread.start()
for thread in threads:
thread.join()
例如,我有 26 个文件。readFromLog() 处理单个文件大约需要 0.3 秒。因此,我大约需要 7.8 (26*0.3) 秒才能阅读所有 26 个文件。这是我调用 singleThreadReader() 时看到的。当我调用 multiThreadReader 时,我还获得了与 singleThreadReader() 相当的执行时间。我确实注意到,如果我取出thread.joins,时间会减少一半,但我认为我不想这样做。
我可能做错了什么?如果我可以同时读取所有 26 个文件,那将是理想的 - 执行时间总共为 0.3 秒。
答: 暂无答案
评论