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的Pyspider为例剖析搜索引擎的网络爬虫实现方法
Mar 30 Python
简单的编程0基础下Python入门指引
Apr 01 Python
介绍Python的@property装饰器的用法
Apr 28 Python
Python科学画图代码分享
Nov 29 Python
python矩阵/字典实现最短路径算法
Jan 17 Python
Python实现的爬取百度文库功能示例
Feb 16 Python
python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
Jun 27 Python
python统计文章中单词出现次数实例
Feb 27 Python
python实现QQ邮箱发送邮件
Mar 06 Python
python单元测试框架pytest的使用示例
Oct 07 Python
python 爬虫如何实现百度翻译
Nov 16 Python
python 读取yaml文件的两种方法(在unittest中使用)
Dec 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实现的返回数据格式化类实例
2014/09/22 PHP
php+xml实现在线英文词典之添加词条的方法
2015/01/23 PHP
PHP在线调试执行的实现方法(附demo源码)
2016/04/28 PHP
php 生成Tab键或逗号分隔的CSV
2016/09/24 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
2017/02/10 PHP
js中判断数字\字母\中文的正则表达式 (实例)
2012/06/29 Javascript
jquery 实现返回顶部功能
2014/11/17 Javascript
非jQuery实现照片散落桌子上,单击放大的LightBox效果
2014/11/28 Javascript
js多个物体运动功能实例分析
2016/12/20 Javascript
Javascript中的 “&” 和 “|” 详解
2017/02/02 Javascript
JavaScript表单验证的两种实现方法
2017/02/11 Javascript
jquery操作select取值赋值与设置选中实例
2017/02/28 Javascript
zTree实现节点修改的实时刷新功能
2017/03/20 Javascript
nodeJS实现路由功能实例代码
2017/06/08 NodeJs
浅谈pc端rem字体设置的问题
2017/08/03 Javascript
一篇文章介绍redux、react-redux、redux-saga总结
2019/05/23 Javascript
微信小程序通过js实现瀑布流布局详解
2019/08/28 Javascript
Vuex的实战使用详解
2019/10/31 Javascript
微信小程序开发搜索功能实现(前端+后端+数据库)
2020/03/04 Javascript
Vue的自定义组件不能使用click方法的解决
2020/07/28 Javascript
zbar解码二维码和条形码示例
2014/02/07 Python
python matplotlib 注释文本箭头简单代码示例
2018/01/08 Python
TensorFlow深度学习之卷积神经网络CNN
2018/03/09 Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
2018/05/24 Python
python 获取字符串MD5值方法
2018/05/29 Python
Django1.11配合uni-app发起微信支付的实现
2019/10/12 Python
解决Python pip 自动更新升级失败的问题
2020/02/21 Python
python小白切忌乱用表达式
2020/05/29 Python
Python3+selenium配置常见报错解决方案
2020/08/28 Python
a标签下载链接的简单实现
2016/09/13 HTML / CSS
超级英雄、电影和电视、乐队和音乐T恤:Loud Clothing
2019/09/01 全球购物
运动会邀请函范文
2014/01/31 职场文书
城市规划应届生推荐信
2014/09/08 职场文书
个人自查自纠材料
2014/10/14 职场文书
爱情保证书
2015/01/17 职场文书
mysql中如何用命令创建联合唯一索引
2022/04/20 MySQL