zoukankan      html  css  js  c++  java
  • Python multiprocessing.Manager介绍和实例(进程间共享数据)

    Python中进程间共享数据,处理基本的queue,pipe和value+array外,还提供了更高层次的封装。使用multiprocessing.Manager可以简单地使用这些高级接口。
    
    Manager()返回的manager对象控制了一个server进程,此进程包含的python对象可以被其他的进程通过proxies来访问。从而达到多进程间数据通信且安全。
    
    Manager支持的类型有list,dict,Namespace,Lock,RLock,Semaphore,BoundedSemaphore,Condition,Event,Queue,Value和Array。
    

      Manager的dict,list使用

    mport multiprocessing
    import time
    def worker(d, key, value):
        d[key] = value
    
    if __name__ == '__main__':
        mgr = multiprocessing.Manager()
        d = mgr.dict()
        jobs = [ multiprocessing.Process(target=worker, args=(d, i, i*2))
                 for i in range(10) 
                 ]
        for j in jobs:
            j.start()
        for j in jobs:
            j.join()
        print ('Results:' )
        for key, value in enumerate(dict(d)):
            print("%s=%s" % (key, value))
            
    # the output is :
    # Results:
    # 0=0
    # 1=1
    # 2=2
    # 3=3
    # 4=4
    # 5=5
    # 6=6
    # 7=7
    # 8=8
    # 9=9
    

      

  • 相关阅读:
    支付宝接口对接常见问题
    Myeclipse中配置安卓环境
    算法精解概述
    使用Eclipse开始Java编程
    Windows使用SSH管理Ubuntu
    大臣的旅费
    剪格子
    波动数列
    买不到的数目
    逆波兰表达式
  • 原文地址:https://www.cnblogs.com/caodneg7/p/9520069.html
Copyright © 2011-2022 走看看