码迷,mamicode.com
首页 > 系统相关 > 详细

manager 实现进程之间的数据共享 list dict

时间:2019-11-16 12:44:27      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:RoCE   art   pen   def   from   main   targe   list   ==   

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

标签:RoCE   art   pen   def   from   main   targe   list   ==   

原文地址:https://www.cnblogs.com/youhongliang/p/11871337.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!