(10)进程---Manager数据共享

Manager  能够实现进程之间的数据共享(dict list),但是必须上锁来确保数据的准确性,

队列则可以实现进程之间数据通信

from multiprocessing import Process , Manager ,Lock
def work(d,lock):
    # 自动上锁和解锁
    with lock:
        d["count"] -= 1
    """
    lock.acquire()
    d["count"] -= 1
    lock.release()
    """
if __name__ == "__main__":
    lock = Lock()
    m = Manager()
    dic = m.dict({"count":50})
    lst = []
    for i in range(50):
        p = Process(target=work,args = (dic,lock))
        lst.append(p)
        p.start()
        
    # 等待每一个进程执行完毕
    for p in lst:
        p.join()
    print(dic)
View Code

 执行结果:

{'count': 0}

 

原文地址:https://www.cnblogs.com/lyj910313/p/10787276.html