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网络编程示例(客户端与服务端)
Apr 24 Python
python解析xml文件实例分析
May 27 Python
详解Python3中的Sequence type的使用
Aug 01 Python
Python3单行定义多个变量或赋值方法
Jul 12 Python
Python将文字转成语音并读出来的实例详解
Jul 15 Python
利用python计算时间差(返回天数)
Sep 07 Python
解决pytorch-yolov3 train 报错的问题
Feb 18 Python
python手机号前7位归属地爬虫代码实例
Mar 31 Python
利用python绘制数据曲线图的实现
Apr 09 Python
python3+selenium获取页面加载的所有静态资源文件链接操作
May 04 Python
Django model class Meta原理解析
Nov 14 Python
Django用内置方法实现简单搜索功能的方法
Dec 18 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代码
2012/06/08 PHP
php url路由入门实例
2014/04/23 PHP
PHP后台实现微信小程序登录
2018/08/03 PHP
javascript 正则替换 replace(regExp, function)用法
2010/05/22 Javascript
JS 删除字符串最后一个字符的实现代码
2014/02/20 Javascript
实现placeholder效果的方案汇总
2015/06/11 Javascript
浅谈jQuery的offset()方法及示例分享
2015/07/17 Javascript
使用jquery实现鼠标滑过弹出更多相关信息层附源码下载
2015/11/23 Javascript
jquery应用实例分享_实现手风琴特效
2018/02/01 jQuery
javascript实现最长公共子序列实例代码
2018/02/05 Javascript
使用vue重构资讯页面的实例代码解析
2019/11/26 Javascript
Ant Design Pro 下实现文件下载的实现代码
2019/12/03 Javascript
Vue快速实现通用表单验证功能
2019/12/05 Javascript
js实现批量删除功能
2020/08/27 Javascript
JavaScript 实现拖拽效果组件功能(兼容移动端)
2020/11/11 Javascript
[51:44]2018DOTA2亚洲邀请赛 4.3 突围赛 Optic vs iG 第二场
2018/04/04 DOTA
[35:29]Secret vs VG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
用实例说明python的*args和**kwargs用法
2013/11/01 Python
Python2和Python3中print的用法示例总结
2017/10/25 Python
Python爬虫:url中带字典列表参数的编码转换方法
2019/08/21 Python
pytorch nn.Conv2d()中的padding以及输出大小方式
2020/01/10 Python
Python 实现简单的客户端认证
2020/07/29 Python
html5.2 dialog简介详解
2018/02/27 HTML / CSS
SQL Server 2000数据库的文件有哪些,分别进行描述
2013/03/30 面试题
Python中如何定义一个函数
2016/09/06 面试题
中专生学习生活的自我评价分享
2013/10/27 职场文书
质检部岗位职责
2013/11/11 职场文书
2014乡镇“三八”国际劳动妇女节活动总结
2014/03/01 职场文书
秋天的怀念教学反思
2014/04/28 职场文书
校园安全标语
2014/06/07 职场文书
党的群众路线教育实践活动组织生活会发言材料
2014/10/17 职场文书
个人债务授权委托书
2014/10/17 职场文书
收入证明申请书
2015/06/12 职场文书
2016抗战胜利71周年红领巾广播稿
2015/12/18 职场文书
五年级数学教学反思
2016/02/16 职场文书
用python画城市轮播地图
2021/05/28 Python