首页 > 解决方案 > 在 Python 中使用多处理将数据存储在共享字典中

问题描述

我正在尝试使用多处理模块的 Pool 类同时在多个核心上运行多个地理空间计算。我希望将结果写在字典中,然后我可以用它来做一些进一步的事情。输入坐标存储在一个 csv 文件中,每一对坐标都存储为一个元组,以便 map 函数工作。

到目前为止,我有这个:

from multiprocessing import Pool

def some_function(point_coords):
    result = f"do some stuff with {point_coords}"

if __name__ == '__main__':

    csv_file= r'C:\Users\Name\Desktop\csv_file.csv'

    with open(csv_file, newline='') as f:
        reader = csv.reader(f)
        pointlist = list(reader)

    list1=[]
    list2=[]
    for i in pointlist:
        list1.append(i[0])
        list2.append(i[1])
    point_coords_zip = zip(list1,list2)
    point_coords = set(point_coords_zip)

    p = Pool()
    mapping = p.map(some_function, point_coords)

    p.close()
    p.join()

我只是想为每个作业在字典中some_function()创建point_coords作为键和result作为值。我已阅读有关 Manager 课程的信息。但我不确定如何使用它dict = manager.dict()来存储所有结果。

标签: pythonmultiprocessing

解决方案


推荐阅读