在Python中,处理并发未来多处理比同步方法慢

2024-06-02 20:00:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在未来处理100万个文档的列表。但是我发现它比普通的同步方法消耗了很多时间。下面是详细的示例代码片段

创建字典列表的代码

data = []

for i in range(1, 1000000):
    data.append({"_id":i, "name":"MaxPayne "+str(i)})

打印文本的辅助功能

def printText(d):
    return d

同步方式

for i in data:
    x=printText(i["name"])
    print(x)

Sychronous way takes 8 seconds to process entire list and print the data

并发未来处理池

with concurrent.futures.ProcessPoolExecutor() as executor:
     results = [executor.submit(printText, d["name"]) for d in data]

     for f in concurrent.futures.as_completed(results):
         print(f.result())

Concurrent Future way takes 300 seconds to process entire list and print the data

我可以知道是什么问题吗。有人能帮我修复这个错误吗。提前谢谢


Tags: to代码namein列表fordataprocess