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


Posted in Python onNovember 21, 2014

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。

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')
Python 相关文章推荐
跟老齐学Python之有容乃大的list(4)
Sep 28 Python
Python中的模块导入和读取键盘输入的方法
Oct 16 Python
Python数据结构与算法之图的广度优先与深度优先搜索算法示例
Dec 14 Python
python中将正则过滤的内容输出写入到文件中的实例
Oct 21 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
Jun 18 Python
详解用python生成随机数的几种方法
Aug 04 Python
postman传递当前时间戳实例详解
Sep 14 Python
python去除删除数据中\u0000\u0001等unicode字符串的代码
Mar 06 Python
浅谈Python中的生成器和迭代器
Jun 19 Python
Matplotlib 绘制饼图解决文字重叠的方法
Jul 24 Python
python 调用Google翻译接口的方法
Dec 09 Python
Python 中的Sympy详细使用
Aug 07 Python
Python pickle类库介绍(对象序列化和反序列化)
Nov 21 #Python
Python和perl实现批量对目录下电子书文件重命名的代码分享
Nov 21 #Python
Python实现的下载8000首儿歌的代码分享
Nov 21 #Python
Python常用模块介绍
Nov 21 #Python
Python使用py2exe打包程序介绍
Nov 20 #Python
Python实现的tab文件操作类分享
Nov 20 #Python
Python实现的ini文件操作类分享
Nov 20 #Python
You might like
php whois查询API制作方法
2011/06/23 PHP
PHP启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
2014/10/20 PHP
php使用lua+redis实现限流,计数器模式,令牌桶模式
2019/04/04 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
2020/05/29 PHP
JQuery优缺点分析说明
2011/04/10 Javascript
jquery中获取元素的几种方式小结
2011/07/05 Javascript
javascript中的if语句使用介绍
2013/11/20 Javascript
jquery live()重复绑定的解决方法介绍
2014/01/03 Javascript
Javascript实现简单的富文本编辑器附演示
2014/06/16 Javascript
jQuery实现的Div窗口震动效果实例
2015/08/07 Javascript
JS实现单击输入框弹出选择框效果完整实例
2015/12/14 Javascript
JavaScript组件开发完整示例
2015/12/15 Javascript
jQuery的框架介绍
2016/05/11 Javascript
js仿手机页面文件下拉刷新效果
2016/10/14 Javascript
8 行 Node.js 代码实现代理服务器
2016/12/05 Javascript
JS获取多维数组中相同键的值实现方法示例
2017/01/06 Javascript
angular实现form验证实例代码
2017/01/17 Javascript
Vuejs 用$emit与$on来进行兄弟组件之间的数据传输通信
2017/02/23 Javascript
jquery实现左右滑动式轮播图
2017/03/02 Javascript
react-router实现按需加载
2017/05/09 Javascript
Node.js+ES6+dropload.js实现移动端下拉加载实例
2017/06/01 Javascript
详解ES6新增字符串扩张方法includes()、startsWith()、endsWith()
2020/05/12 Javascript
wxPython之解决闪烁的问题
2018/01/15 Python
Python实现接受任意个数参数的函数方法
2018/04/21 Python
Python之list对应元素求和的方法
2018/06/28 Python
JSON文件及Python对JSON文件的读写操作
2018/10/07 Python
python @propert装饰器使用方法原理解析
2019/12/25 Python
信号生成及DFT的python实现方式
2020/02/25 Python
jupyter notebook 实现matplotlib图动态刷新
2020/04/22 Python
教你使用Canvas处理图片的方法
2017/11/28 HTML / CSS
Skyscanner英国:苏格兰的全球三大领先航班搜索服务之一
2017/11/09 全球购物
项目副经理岗位职责
2013/12/30 职场文书
小学生民族团结演讲稿
2014/08/27 职场文书
实习单位推荐信
2015/03/27 职场文书
行政诉讼答辩状
2015/05/21 职场文书
制定企业培训计划的五大要点!
2019/07/10 职场文书