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中关键字nonlocal和global的声明与解析
Mar 12 Python
Python实现的读取电脑硬件信息功能示例
May 30 Python
如何用Python合并lmdb文件
Jul 02 Python
Python实现手写一个类似django的web框架示例
Jul 20 Python
学生信息管理系统python版
Oct 17 Python
5分钟 Pipenv 上手指南
Dec 20 Python
详解python selenium 爬取网易云音乐歌单名
Mar 28 Python
浅谈Python2之汉字编码为unicode的问题(即类似\xc3\xa4)
Aug 12 Python
python函数修饰符@的使用方法解析
Sep 02 Python
Python实现字符串中某个字母的替代功能
Oct 21 Python
python实现通过队列完成进程间的多任务功能示例
Oct 28 Python
Python通过len函数返回对象长度
Oct 22 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 rawurlencode与urlencode函数的深入分析
2013/06/08 PHP
CodeIgniter框架中_remap()使用方法2例
2014/03/10 PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
2016/05/19 PHP
PHP-FPM和Nginx的通信机制详解
2019/02/01 PHP
js电信网通双线自动选择技巧
2008/11/18 Javascript
JS网页播放声音实现代码兼容各种浏览器
2013/09/22 Javascript
JavaScript中getUTCMinutes()方法的使用详解
2015/06/10 Javascript
基于jQuery实现表格内容的筛选功能
2016/08/21 Javascript
Bootstrap实现的标签页内容切换显示效果示例
2017/05/25 Javascript
微信小程序多列选择器range-key使用详解
2020/03/30 Javascript
vue与bootstrap实现时间选择器的示例代码
2017/08/26 Javascript
vue底部加载更多的实例代码
2018/06/29 Javascript
浅谈Angular 观察者模式理解
2018/11/01 Javascript
vue-cli3全面配置详解
2018/11/14 Javascript
微信小程序实现的3d轮播图效果示例【基于swiper组件】
2018/12/11 Javascript
vue实现百度下拉列表交互操作示例
2019/03/12 Javascript
每周一练 之 数据结构与算法(Stack)
2019/04/16 Javascript
微信小程序通过js实现瀑布流布局详解
2019/08/28 Javascript
vue获取data数据改变前后的值方法
2019/11/07 Javascript
es6函数之rest参数用法实例分析
2020/04/18 Javascript
Javascript实现秒表计时游戏
2020/05/27 Javascript
Element Tooltip 文字提示的使用示例
2020/07/26 Javascript
[40:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs TNC
2018/04/01 DOTA
Python从单元素字典中获取key和value的实例
2018/12/31 Python
HTML5实现分享到微信好友朋友圈QQ好友QQ空间微博二维码功能
2018/01/03 HTML / CSS
KIKO比利时官网:意大利彩妆品牌
2017/07/23 全球购物
荷兰最大的多品牌男装连锁店:Adam Brandstore
2019/12/31 全球购物
现金会计岗位职责
2013/12/05 职场文书
教师节促销活动方案
2014/02/14 职场文书
乡镇群众路线整改落实情况汇报
2014/10/28 职场文书
2015年消防工作总结
2015/04/24 职场文书
2015年妇幼保健工作总结
2015/05/19 职场文书
适合青年人白手起家的创业项目分享
2019/08/16 职场文书
《围炉夜话》110句人生箴言,精辟有内涵,引人深思
2019/10/23 职场文书
豆瓣2021评分最高动画剧集-豆瓣评分最高的动画剧集2021
2022/03/18 日漫
Win11电脑显示本地时间与服务器时间不一致怎么解决?
2022/04/05 数码科技