我们可以使用未知的列表项,并编写一个函数来同时使用所有项吗?

时间:2016-11-04 22:01:17

标签: python python-3.x

我有一个设备列表,可能会根据测试平台而改变。这里我有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个节点。

1 个答案:

答案 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()