1
我有一個python程序運行蒙特卡洛模擬來找到概率問題的答案。我用的多,在這裏它是僞代碼多處理期間保持統一計數?
import multiprocessing
def runmycode(result_queue):
print "Requested..."
while 1==1:
iterations +=1
if "result found (for example)":
result_queue.put("result!")
print "Done"
processs = []
result_queue = multiprocessing.Queue()
for n in range(4): # start 4 processes
process = multiprocessing.Process(target=runmycode, args=[result_queue])
process.start()
processs.append(process)
print "Waiting for result..."
result = result_queue.get() # wait
for process in processs: # then kill them all off
process.terminate()
print "Got result:", result
我想延長,這樣我可以保持已運行的迭代次數統一計數。就像如果線程1已經運行100次並且線程2已經運行了100次那麼我想總共顯示200次迭代,作爲打印到控制檯。我指的是線程進程中的iterations
變量。我怎樣才能確保所有線程都添加到相同的變量?我認爲使用iterations
的Global
版本可以工作,但事實並非如此。