代码v2ex不显示格式,我传了个图。: http://ww3.sinaimg.cn/mw1024/005R8CzCjw1er8sbmqqpfj30cl09yq3r.jpg
from multiprocessing import Pool
def openit(i,data1):
print i
data1.append(i)
if name=='main':
data=['a','b','c','d','e','f']
data1=[]
print 'Start!'
p = Pool(6)
for i in data:
p.apply_async(openit, args=(i,data1))
p.close()
p.join()
print 'Done',data1
这个代码为什么输出的data1是空的
执行结果:Start!
a
b
c
e
d
f
Done []
1
xanpeng 2015-04-18 00:38:18 +08:00 1
python进程间变量共享问题,参考这篇文章“浅谈 python multiprocessing(多进程)下如何共享变量”(http://my.oschina.net/leejun2005/blog/203148),以及其中相关链接。
|
3
nettest OP @xanpeng Manager是否只能在linux下运行?测试了给的链接里的第一个代码,结果win报错,linux正常。
|
4
xanpeng 2015-04-20 13:35:26 +08:00 1
@nettest 这个我实际也少用到,应该不是只适用linux吧,毕竟python是跨平台的,且文档(https://docs.python.org/2/library/multiprocessing.html#managers)也没有提到不适用win。
win报错得你自查了,我没有win环境。不过manager貌似非唯一方法,可试试其他的。 |