# Author:Winter Liu is coming! # 通過Manager實現進程間通信,但注意數據安全問題 # Manager類提供了字典和列表方法,實質是使用文件,所以並發中會出現數據安全問題 from multiprocessing import Process, Manager, Lock def func(dic,lock): with lock: dic["count"] -= 1 if __name__ == '__main__': m = Manager() # 通過文件實現,所以會出現數據不安全的情況,需要加鎖 lock = Lock() dic = m.dict({"count": 20}) plist = [] for i in range(20): p = Process(target=func, args=(dic,lock)) p.start() plist.append(p) for p in plist: p.join() print(dic)