【发布时间】:2020-09-15 23:56:11
【问题描述】:
直观地说,输出应始终为 15。但有时,它会生成 11 或 12 或其他值。我尝试添加一些延迟,但没有解决问题。
from multiprocessing import Pool, Manager
import time
def func(dic, c):
dic['count'] += c
# time.sleep(0.1)
if __name__=="__main__":
d = Manager().dict() # a manager to enable data sharing b
d['count'] = 0
args = [(d,1), (d,2), (d,3), (d,4), (d,5)]
pool = Pool(5)
pool.starmap(func, args)
pool.close()
pool.join()
print(f'dic={d}')
【问题讨论】:
-
在我看来像比赛条件
标签: python multiprocessing pool