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中的类与对象之描述符详解
Mar 27 Python
python中pylint使用方法(pylint代码检查)
Apr 06 Python
Python实现base64编码的图片保存到本地功能示例
Jun 22 Python
Python常见MongoDB数据库操作实例总结
Jul 24 Python
pandas去除重复列的实现方法
Jan 29 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
Aug 13 Python
Python socket非阻塞模块应用示例
Sep 12 Python
python实现的config文件读写功能示例
Sep 24 Python
python如何将两个txt文件内容合并
Oct 18 Python
python NumPy ndarray二维数组 按照行列求平均实例
Nov 26 Python
python基于opencv检测程序运行效率
Dec 28 Python
Python实现自动打开电脑应用的示例代码
Apr 17 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 VS ASP
2006/10/09 PHP
php 空格,换行,跳格使用说明
2009/12/18 PHP
ThinkPHP 404页面的设置方法
2015/01/14 PHP
PHP+JS三级菜单联动菜单实现方法
2016/02/24 PHP
详解PHP队列的实现
2019/03/14 PHP
javascript利用初始化数据装配模版的实现代码
2010/11/17 Javascript
js获取url中的参数且参数为中文时通过js解码
2014/03/19 Javascript
Javascript实现禁止输入中文或英文的例子
2014/12/09 Javascript
js简单抽奖代码
2015/01/16 Javascript
JS文字球状放大效果代码分享
2015/08/19 Javascript
详解jQuery Mobile自定义标签
2016/01/06 Javascript
jQuery EasyUI 组件加上“清除”功能实例详解
2017/04/11 jQuery
Vue iview-admin框架二级菜单改为三级菜单的方法
2018/07/03 Javascript
如何为你的JS项目添加智能提示与类型检查详解
2019/03/12 Javascript
Python os模块介绍
2014/11/30 Python
python实现SMTP邮件发送功能
2020/06/16 Python
利用Python实现图书超期提醒
2016/08/02 Python
Python实现七彩蟒蛇绘制实例代码
2018/01/16 Python
python opencv之SURF算法示例
2018/02/24 Python
详解Python中pandas的安装操作说明(傻瓜版)
2019/04/08 Python
python虚拟环境完美部署教程
2019/08/06 Python
Python检查图片是否损坏及图片类型是否正确过程详解
2019/09/30 Python
Pytorch中index_select() 函数的实现理解
2019/11/19 Python
python中strip(),lstrip(),rstrip()函数的使用讲解
2020/11/17 Python
CSS3使用多列制作瀑布流
2016/05/10 HTML / CSS
纯CSS3实现给头像加个光芒四射且旋转的背景动画效果
2014/05/07 HTML / CSS
Eastbay官网:美国最大的运动鞋网络零售商
2016/07/27 全球购物
Sofmap官网:日本著名的数码电器专卖店
2017/05/19 全球购物
夏威夷咖啡公司:Hawaii Coffee Company
2019/09/19 全球购物
入团者的自我评价分享
2013/12/02 职场文书
学生会部长竞聘书
2014/03/31 职场文书
出生公证书样本
2014/04/04 职场文书
党员弘扬焦裕禄精神思想汇报
2014/09/10 职场文书
2014最新毕业证代领委托书
2014/09/26 职场文书
2015年防汛工作总结
2015/05/15 职场文书
golang 语言中错误处理机制
2021/08/30 Golang