多个输入和输出,用什么并行化它?

Multiple inputs and outputs, parallelize it using what?

Pool.map() 只接受一个可迭代变量作为参数,这不是我的情况,我发现很难将它简化为一个可迭代变量。

mp.Process() 只允许我输出一个变量,这也不是我的情况,我的输出是在并行化中创建的 4 个地理数据框列表

我可以用什么函数(在 multiprocessing 中)并行化它?

您可以 zip 将多个 iterable 参数放在一起,然后调用 Pool.map 并将该结果作为单个 iterable 参数,在这种情况下,mapfunc 参数将是一个以 tuple 作为参数的函数,或者您可以调用 pool.starmap在这种情况下,starmapfunc 参数将是一个接受 n 个参数的函数。

这演示了两种技术:

from multiprocessing import Pool

def worker_1(t):
    x, y, z = t # unpack
    ...

def worker_2(x, y, z):
    ...

if __name__ == '__main__':
    pool = Pool()
    results_1 = pool.map(worker_1, zip(range(1, 101), range(2, 102), range(3, 103)))
    results_2 = pool.starmap(worker_2, zip(range(1, 101), range(2, 102), range(3, 103)))