zoukankan      html  css  js  c++  java
  • 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))
  • 相关阅读:
    函数方法与面向对象
    seleniums私房菜系列一 ---- selenium简介
    MySQL图形化管理工具
    存储引擎
    mysql自定义函数
    加密函数
    mysql聚合函数
    mysql信息函数
    mysql日期时间函数(常用的)
    mysql比较运算符和函数
  • 原文地址:https://www.cnblogs.com/youhongliang/p/11871337.html
Copyright © 2011-2022 走看看