8535.com-新浦京娱乐场官网|欢迎您

【新浦京娱乐场官网】Python multiprocessing.Manager介

来源:http://www.dnamique.com 作者:计算机网络 人气:137 发布时间:2020-01-04
摘要:Python multiprocessing.Manager介绍和实例(进程间分享数据),multiprocessing Python中经过间分享数据,管理为主的queue,pipe和value+array外,还提供了更高档次的包裹。使用multiprocessing.Manager能够

Python multiprocessing.Manager介绍和实例(进程间分享数据),multiprocessing

Python中经过间分享数据,管理为主的queue,pipe和value+array外,还提供了更高档次的包裹。使用multiprocessing.Manager能够总结地使用那一个高档接口。

Manager(卡塔尔(قطر‎再次回到的manager对象说了算了二个server进度,此进程蕴含的python对象能够被其余的长河经过proxies来做客。从而到达多进度间数据通讯且安全。

Manager支持的连串有list,dict,Namespace,Lock,本田S660Lock,塞马phore,BoundedSemaphore,Condition,伊芙nt,Queue,Value和Array。

1) Manager的dict,list使用

复制代码 代码如下:

import 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

上边为manager.dict的选择实例。

2)namespace对象未有国有的措施,不过有可写的性质。

不过当使用manager重回的namespace的proxy的时候,_属性值归于proxy,跟原本的namespace没有提到。

复制代码 代码如下:

>>> manager = multiprocessing.Manager()
>>> Global = manager.Namespace()
>>> Global.x = 10
>>> Global.y = 'hello'
>>> Global._z = 12.3    # this is an attribute of the proxy
>>> print(Global)
Namespace(x=10, y='hello')

multiprocessing.Manager介绍和实例(进度间分享数据),multiprocessing Python中经过间分享数据,管理中央的queue,pipe和value+array外,还提供了...

本文由8535.com-新浦京娱乐场官网|欢迎您发布于计算机网络,转载请注明出处:【新浦京娱乐场官网】Python multiprocessing.Manager介

关键词:

最火资讯