下面是我如何解决这个问题的一个简单例子from functools import partial
from multiprocessing import Pool
def VariadicLifter(func, args):
return func(*args)
def func(x,y,z,a):
return x+2*y+3*z+4*a
if __name__ == '__main__':
func_ = partial( func, 500, 1007)
lfunc_ = partial( VariadicLifter, func_)
RANGE = zip( range(10,31),range(10,31) )
pool = Pool(processes=6)
result_array = pool.map( lfunc_, RANGE )
pool.close()
pool.join()
这是有效的:每次调用lfunc_U的结果都在result\u数组中可用。在
现在,我尝试在另一个上下文中应用这个模式,得到了错误消息。在
^{pr2}$
但是如果我用一个常规映射替换多处理映射,程序运行就没有问题。
多处理池的函数参数是否有限制?
(我的理解是,至少lambda函数不能用于多处理池)
谢谢