如何更新下面的multi_proc_parallel_functions
函数以接受参数列表.这是使用multiprocess模块.
请注意,我将在AWS Lambda中使用此功能,其他多处理模块可能会在Lambda上出现问题.
下面的adder
个函数只是用于演示问题的玩具函数.
import multiprocess as mp
def parallel_functions(function,send_end):
send_end.send(function())
def multi_proc_parallel_functions(function_list,target_func):
jobs = []
pipe_list = []
for function in function_list:
recv_end, send_end = mp.Pipe(False)
p = mp.Process(target=target_func, args=(function,send_end))
jobs.append(p)
pipe_list.append(recv_end)
p.start()
result_list = [x.recv() for x in pipe_list]
for proc in jobs:
proc.join()
return result_list
def adder10():
return np.random.randint(5) + 10
def adder1000():
return np.random.randint(5) + 1000
创建函数列表
function_list = [adder10,adder10,adder10,adder1000]
运行所有功能
multi_proc_parallel_functions(function_list,parallel_functions)
[13, 13, 13, 1003]
如何更新multi_proc_parallel_functions
以接受不同长度的参数列表,这些参数将根据函数的不同而变化,如下所示:
def adder10(x,y):
return np.random.randint(5) + 10 + x * y
def adder1000(a,b, c):
return np.random.randint(5) + 1000 -a + b +c
我认为这需要*args.