【发布时间】:2020-08-25 19:08:17
【问题描述】:
我有一些具有以下结构的代码:一个接受嵌套参数范围的函数。对于 MVCE 目的,考虑以下内容就足够了
def func(x, y):
return x*x, x+(5*y)
results = []
for a in range(3):
for b in range(2,5):
temp_results = func(a,b)
results.append(temp_results)
sorted_results = sorted(results, key=lambda x: x[1], reverse=True)
print(sorted_results)
我正在尝试使用多处理池来运行 func(a, b) 部分。我想尽可能地保持上面的结构。
这是我目前所看到的基于多处理池示例的内容。地图参数不起作用,因为他们期望那里有块大小。另外,如何将池结果收集到稍后排序的列表中?有没有办法以与上述单线程案例非常相似的方式来做到这一点?
a_params = []
b_params = []
for a in range(3):
for b in range(2,5):
a_params.append(a)
b_params.append(b)
from multiprocessing import Pool
def pool_handler():
p = Pool(2)
p.map(func, a_params, b_params)
if __name__ == '__main__':
pool_handler()
【问题讨论】:
标签: python-3.x nested-loops python-multiprocessing