我有一个设备列表,可能会根据测试平台而改变。这里我有4个节点:
node_list = [R1,R2,R3,R4]
我们可以编写一个python代码,在函数中同时使用四个值。
目前我正在修复测试平台:
R1 = node_list[0]
R2 = node_list[1]
R3 = node_list[2]
R4 = node_list[3]
我们有一个pcall函数定义来运行并发调用。让我说我调用的函数是run_command(rtr)
:
pcall([run_command],iargs=[R1,R2,R3,R4])
允许所有四个节点同时调用run_command函数。但它修复了4个节点。
答案 0 :(得分:0)
您需要multuprocessing.Pool.map()
。文件详情:
map()
内置函数的并行等价物(它只支持一个可迭代的参数)。它会阻塞,直到结果准备就绪。此方法将iterable切割为多个块,并将其作为单独的任务提交给进程池。可以通过将chunksize设置为正整数来指定这些块的(近似)大小。
示例示例:
from multiprocessing import Pool
def f(x):
return x*x
p = Pool(5)
print(p.map(f, [1, 2, 3]))
将打印到标准输出:
[1, 4, 9]
另外,请检查:multuprocessing.Pool.imap()
,multuprocessing.Pool.map_async()