manager 实现进程之间的数据共享 list dict
Posted youhongliang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了manager 实现进程之间的数据共享 list dict相关的知识,希望对你有一定的参考价值。
manager 能够实现进程之间的数据共享 (list,dict)
如果多个进程同事修改同一份共享数据,这个时候需要加锁,保证数据的准确性。
(1) dict list 可以实现进程之间的数据共享
(2)为了保证数据的准确性,需要加锁
基本语法:
m = Manager()
dic = m.dic({"count":1000}) 或者 lst = m.list({"count":1000})
1 from multiprocessing import Process,Manager,Lock 2 def work(dic,lock): 3 # with 语法 可以自动的上锁和解锁 4 with lock: 5 dic["count"] -= 1 6 """ 7 lock.acquire() 8 dic["count"] -= 1 9 lock.release() 10 """ 11 12 if __name__ == ‘__main__‘: 13 lst = [] 14 # 创建一把锁 15 lock = Lock() 16 m = Manager() 17 dic = m.dict({"count" : 1000}) 18 19 for i in range(100): 20 p = Process(target=work,args=(dic,lock)) 21 p.start() 22 lst.append(p) 23 24 for i in lst: 25 i.join() 26 27 print(dic,type(dic))
以上是关于manager 实现进程之间的数据共享 list dict的主要内容,如果未能解决你的问题,请参考以下文章