B F*_*ado 5 python multiprocessing python-multiprocessing
我有一个(大)名单,里面有男性和女性特工。
我想对每个应用不同的功能。
在这种情况下如何使用 Pool ?鉴于代理是相互独立的。
一个例子是:
males = ['a', 'b', 'c']
females = ['d', 'e', 'f']
for m in males:
func_m(m)
for f in females:
func_f(f)
Run Code Online (Sandbox Code Playgroud)
我是这样开始的:
from multiprocessing import Pool
p = Pool(processes=2)
p.map() # Here is the problem
Run Code Online (Sandbox Code Playgroud)
我想要一些类似的东西:
p.ZIP(func_f for f in females, func_m for m in males) # pseudocode
Run Code Online (Sandbox Code Playgroud)
可以使用异步启动计算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())
Run Code Online (Sandbox Code Playgroud)
您还可以寻找更现代的concurrent.futuresAPI,它对于此类计算来说更加直观。
| 归档时间: |
|
| 查看次数: |
334 次 |
| 最近记录: |