进程之间数据共享 Manager()

Posted 刘家小仙女

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进程之间数据共享 Manager()相关的知识,希望对你有一定的参考价值。

进程之间数据共享

  • 使用Manager()

  • 缺点:

    • 数据不安全(可以加锁解决)
    • 速度慢
  • 代码:

    from multiprocessing import Process
    from multiprocessing import Manager
    from multiprocessing import Lock
    
    def change_dic(dic,lock):
        with lock:
            dic[\'count\']-=1
    
    if __name__ == \'__main__\':
        with Manager()as m: #m=Manager()
            lock = Lock()
            dic=m.dict({\'count\':100})
            p_l=[]
            for i in range(100):
                p=Process(target=change_dic,args=(dic,lock))
                p.start()
                p_l.append(p)
            for p in p_l:p.join()
            print(dic)
    得:
    {\'count\': 0}
    

以上是关于进程之间数据共享 Manager()的主要内容,如果未能解决你的问题,请参考以下文章

进程和线程之间共享和更新列表

Gunicorn 在多处理进程和工作进程之间共享内存

Python——进程通信之间数据共享

网络编程基础---并发编程----Manager(共享字典,列表)---joinabelqueue----进程池---回调函数

python全栈开发,Day40(进程间通信(队列和管道),进程间的数据共享Manager,进程池Pool)

进程间通讯-3(Manager)