多重处理:如何在类中定义的函数上使用Pool.map?

多重处理:如何在类中定义的函数上使用Pool.map?,第1张

多重处理:如何在类中定义的函数上使用Pool.map?

我也对pool.map可以接受哪种功能的限制感到恼火。为了避免这种情况,我写了以下内容。即使递归使用parmap,它似乎也可以工作。

from multiprocessing import Process, Pipefrom itertools import izipdef spawn(f):    def fun(pipe, x):        pipe.send(f(x))        pipe.close()    return fundef parmap(f, X):    pipe = [Pipe() for x in X]    proc = [Process(target=spawn(f), args=(c, x)) for x, (p, c) in izip(X, pipe)]    [p.start() for p in proc]    [p.join() for p in proc]    return [p.recv() for (p, c) in pipe]if __name__ == '__main__':    print parmap(lambda x: x**x, range(1, 5))


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5631152.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存