gpt4 book ai didi

python - 使用 Pool 和 multiprocessing 同时将两个函数应用于两个列表

转载 作者:太空宇宙 更新时间:2023-11-03 11:44:35 24 4
gpt4 key购买 nike

我有一份包含男性和女性代理人的(大)名单。

我想对每个函数应用不同的函数。

在这种情况下我该如何使用 Pool 呢?鉴于代理人彼此独立。

一个例子是:

males = ['a', 'b', 'c']
females = ['d', 'e', 'f']
for m in males:
func_m(m)
for f in females:
func_f(f)

我是这样开始的:

from multiprocessing import Pool
p = Pool(processes=2)
p.map() # Here is the problem

我想要这样的东西:

p.ZIP(func_f for f in females, func_m for m in males) # pseudocode

最佳答案

这可以使用 map_async 异步启动计算。这会启动所有需要的作业,然后您可以对结果使用 get 方法将它们收集到一个列表中。

from multiprocessing import Pool

pool = Pool(4)
res_male = pool.map_async(func_m, males)
res_females = pool.map_async(fun_f, females)

res = res_male.get()
res.extend(res_females.get())

您还可以查看更现代的 concurrent.futures API,它对于此类计算更直观。

关于python - 使用 Pool 和 multiprocessing 同时将两个函数应用于两个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42581090/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com