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 相关文章推荐
在Django的模板中使用认证数据的方法
Jul 23 Python
Python随手笔记之标准类型内建函数
Dec 02 Python
python3利用Socket实现通信的方法示例
May 06 Python
python字符串Intern机制详解
Jul 01 Python
python 实现12bit灰度图像映射到8bit显示的方法
Jul 08 Python
django页面跳转问题及注意事项
Jul 18 Python
Django中的静态文件管理过程解析
Aug 01 Python
python print 格式化输出,动态指定长度的实现
Apr 12 Python
pandas创建DataFrame的7种方法小结
Jun 14 Python
Tensorflow--取tensorf指定列的操作方式
Jun 30 Python
Python3+selenium配置常见报错解决方案
Aug 28 Python
python爬取抖音视频的实例分析
Jan 19 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
星际中的相关伤害
2020/03/04 星际争霸
PHP中加密解密函数与DES加密解密实例
2014/10/17 PHP
javascript语句中的CDATA标签的意义
2007/05/09 Javascript
学习javascript,实现插入排序实现代码
2011/07/31 Javascript
javaScript面向对象继承方法经典实现
2013/08/20 Javascript
含有CKEditor的表单如何提交
2014/01/09 Javascript
Javascript 正则表达式实现为数字添加千位分隔符
2015/03/10 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
2015/04/17 Javascript
nodejs和php实现图片访问实时处理
2017/01/05 NodeJs
关于echarts在节点显示动态数据及添加提示文本所遇到的问题
2018/04/20 Javascript
js中的 || 与 && 运算符详解
2018/05/24 Javascript
JavaScript中的ES6 Proxy的具体使用
2019/06/16 Javascript
js 实现 list转换成tree的方法示例(数组到树)
2019/08/18 Javascript
Vue中el-form标签中的自定义el-select下拉框标签功能
2020/04/20 Javascript
js实现上传按钮并显示缩略图小轮子
2020/05/04 Javascript
JS如何实现手机端输入验证码效果
2020/05/13 Javascript
使用Python写CUDA程序的方法
2017/03/27 Python
python处理csv中的空值方法
2018/06/22 Python
python画一个玫瑰和一个爱心
2020/08/18 Python
python的中异常处理机制
2018/08/30 Python
详解python中的Turtle函数库
2018/11/19 Python
计算机二级python学习教程(1) 教大家如何学习python
2019/05/16 Python
对python3中的RE(正则表达式)-详细总结
2019/07/23 Python
Python 生成器,迭代,yield关键字,send()传参给yield语句操作示例
2019/10/12 Python
基于python纯函数实现井字棋游戏
2020/05/27 Python
matplotlib事件处理基础(事件绑定、事件属性)
2021/02/03 Python
HTML5中外部浏览器唤起微信分享功能的代码
2020/09/15 HTML / CSS
Expedia挪威官网:酒店、机票和租车
2018/03/03 全球购物
巴黎卡诗加拿大官网:Kérastase加拿大
2018/11/12 全球购物
Java程序员面试题
2013/07/15 面试题
领导班子四风查摆对照检查材料思想汇报
2014/10/05 职场文书
幼儿园教学工作总结2015
2015/05/12 职场文书
微观世界观后感
2015/06/10 职场文书
宾馆安全管理制度
2015/08/06 职场文书
2016年度员工工作表现评语
2015/12/02 职场文书
优胜劣汰,强者为王——读《鲁滨逊漂流记》有感
2019/08/15 职场文书