程式需要多程序見共享記憶體,使用了Manager的dict。最初代碼如下:
from multiprocessing import Process, Manager
d = Manager().dict()
d2 = {}
def f():
d['a1'] = {}
<span style="color:#ff6666;"> d['a1']['a2'] = 11</span>
print d['a1']['a2']
if __name__ == '__main__':
p = Process(target=f)
p.start()
p.join()
結果報錯:
print d['a1']['a2']
KeyError: 'a2'
解決方案:
from multiprocessing import Process, Manager
d = Manager().dict()
d2 = {}
def f():
d['a1'] = {}
<span style="color:#ff6666;"> d2['a2'] = 11
d['a1'] = d2</span>
print d['a1']['a2']
if __name__ == '__main__':
p = Process(target=f)
p.start()
p.join()