我想通過多個進程更新一個通用字典。你能幫我找出這個代碼有什麼問題嗎?我得到以下輸出:python多進程更新詞典同步
inside function
{1: 1, 2: -1}
comes here
inside function
{1: 0, 2: 2}
comes here
{1: 0, 2: -1}
謝謝。
from multiprocessing import Lock, Process, Manager
l= Lock()
def computeCopyNum(test,val):
l.acquire()
test[val]=val
print "inside function"
print test
l.release()
return
a=dict({1: 0, 2: -1})
procs=list()
for i in range(1,3):
p = Process(target=computeCopyNum, args=(a,i))
procs.append(p)
p.start()
for p in procs:
p.join()
print "comes here"
print a
@ user1050325,你說你使用'Queue'得到了一個錯誤 - 你試過'Manager'方法嗎?對於基本的進程間通信,'Managers'完全沒問題。請讓我知道這對你有沒有用。 – senderle
令人驚歎和簡單的解決方案。 –