2
说的更新,我这样做:多重的map函数忽略我的全局变量
import multiprocessing as mp
y = 10
def f(x) :
return x + y
for i in xrange(2) :
y = i
pool = mp.Pool(processes = 2)
print pool.map(f, xrange(5))
pool.close()
pool.join()
输出:
[0, 1, 2, 3, 4]
[1, 2, 3, 4, 5]
好吧,这是我所期待的。但是,现在让我们继续前进的pool
声明的for
循环之外:
y = 10
def f(x) :
return x + y
pool = mp.Pool(processes = 2)
for i in xrange(2) :
y = i
print pool.map(f, xrange(5))
输出:
[10, 11, 12, 13, 14]
[10, 11, 12, 13, 14]
的y
新值被忽略!这是怎么回事?