我正在学习如何使用multiprocessing,找到了the following example。
我想将值相加如下:
from multiprocessing import Pool
from time import time
N = 10
K = 50
w = 0
def CostlyFunction(z):
r = 0
for k in xrange(1, K+2):
r += z ** (1 / k**1.5)
print r
w += r
return r
currtime = time()
po = Pool()
for i in xrange(N):
po.apply_async(CostlyFunction,(i,))
po.close()
po.join()
print w
print '2: parallel: time elapsed:', time() - currtime
我不能得到所有r值的和。
如果要像那样使用apply_async,那么必须使用某种共享内存。此外,还需要放置启动多处理的部分,以便仅在初始脚本调用时才执行,而不是池进程。这是一种用地图的方法。
下面是我在python example documentation中找到的最简单的示例:
这很简单,即使我能理解。
注
result.get()
是触发计算的原因。相关问题 更多 >
编程相关推荐