2 回答

TA貢獻1824條經驗 獲得超5個贊
您需要使用Lock(請參閱本文)來保護您的值的修改。
from multiprocessing import Lock
lock = Lock()
def some_func(roll):
with lock:
if(comparison on rolls):
win.value += 1
elif(other comparison):
draw.value +=1
else:
loose.value +=1

TA貢獻1946條經驗 獲得超4個贊
除了@jfowkes 回答的內容之外,請注意,您可以將每個 Value 與自己的鎖一起使用,這可能會使事情變得更快:
win = mp.Value('i', lock = True)
draw = mp.Value('i', lock = True)
loose = mp.Value('i', lock = True)
def some_func(roll):
if(comparison on rolls):
with win.get_lock() :
win.value += 1
elif(other comparison):
with draw.get_lock():
draw.value +=1
else:
with loose.get_lock():
loose.value +=1
添加回答
舉報