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实现获取网站PR及百度权重
Jan 21 Python
Linux下编译安装MySQL-Python教程
Feb 02 Python
Python 网页解析HTMLParse的实例详解
Aug 10 Python
Python简单实现自动删除目录下空文件夹的方法
Aug 29 Python
python如何通过实例方法名字调用方法
Mar 21 Python
caffe binaryproto 与 npy相互转换的实例讲解
Jul 09 Python
解决Shell执行python文件,传参空格引起的问题
Oct 30 Python
Python基于Tkinter模块实现的弹球小游戏
Dec 27 Python
Python中按键来获取指定的值
Mar 02 Python
Python图像处理库PIL中图像格式转换的实现
Feb 26 Python
基于plt.title无法显示中文的快速解决
May 16 Python
Python爬取英雄联盟MSI直播间弹幕并生成词云图
Jun 01 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安装全攻略:APACHE
2006/10/09 PHP
php include的妙用,实现路径加密
2008/07/29 PHP
php define的第二个参数使用方法
2013/11/04 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
asp.net中System.Timers.Timer的使用方法
2013/03/20 Javascript
jquery如何把数组变为字符串传到服务端并处理
2014/04/30 Javascript
JavaScript实现算术平方根算法-代码超简单
2015/09/11 Javascript
JavaScript实现点击按钮切换网页背景色的方法
2015/10/17 Javascript
JS从一组数据中找到指定的单条数据的方法
2016/06/02 Javascript
Google 地图API Map()构造器详解
2016/08/06 Javascript
原生JS实现轮播效果+学前端的感受(防止走火入魔)
2016/08/21 Javascript
AngularJS表单验证中级篇(3)
2016/09/28 Javascript
移动端滑动插件Swipe教程
2016/10/16 Javascript
微信小程序 时间格式化(util.formatTime(new Date))详解
2016/11/16 Javascript
JavaScript实现拖拽功能
2020/02/11 Javascript
JS制作简易计算器的实例代码
2020/07/04 Javascript
基于vue实现简易打地鼠游戏
2020/08/21 Javascript
详解JavaScript中的数据类型,以及检测数据类型的方法
2020/09/17 Javascript
[00:32]2018DOTA2亚洲邀请赛OpTic出场
2018/04/03 DOTA
[40:01]OG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python模拟登录百度代码分享(获取百度贴吧等级)
2013/12/27 Python
python文件写入实例分析
2015/04/08 Python
Python中super的用法实例
2015/05/28 Python
Python 3.x 新特性及10大变化
2015/06/12 Python
用Python实现大文本文件切割的方法
2019/01/12 Python
对Python 简单串口收发GUI界面的实例详解
2019/06/12 Python
Django使用模板后无法找到静态资源文件问题解决
2019/07/19 Python
django ObjectDoesNotExist 和 DoesNotExist的用法
2020/07/09 Python
selenium+超级鹰实现模拟登录12306
2021/01/24 Python
在HTML5 canvas里用卷积核进行图像处理的方法
2018/05/02 HTML / CSS
Myprotein芬兰官网:欧洲第一运动营养品牌
2019/05/05 全球购物
企业百日安全活动总结
2015/05/07 职场文书
交通事故调解协议书
2015/05/20 职场文书
护士旷工检讨书
2015/08/15 职场文书
竞聘演讲报告:基本写作有哪些?附开头范文
2019/10/16 职场文书
聊聊SpringBoot自动装配的魔力
2021/11/17 Java/Android