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的Cookie.py模块支持冒号做key的方法
Dec 28 Python
Linux中Python 环境软件包安装步骤
Mar 31 Python
python opencv实现运动检测
Jul 10 Python
python读取图片的方式,以及将图片以三维数组的形式输出方法
Jul 03 Python
Apache部署Django项目图文详解
Jul 30 Python
Django之模板层的实现代码
Sep 09 Python
Django 框架模型操作入门教程
Nov 05 Python
python 6.7 编写printTable()函数表格打印(完整代码)
Mar 25 Python
Django用户身份验证完成示例代码
Apr 03 Python
jupyter notebook清除输出方式
Apr 10 Python
tensorflow模型转ncnn的操作方式
May 25 Python
使用Python通过企业微信应用给企业成员发消息
Apr 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
phpmyadmin的#1251问题
2006/11/25 PHP
用php实现批量查询清除一句话后门的代码
2008/01/20 PHP
linux iconv方法的使用
2011/10/01 PHP
yii框架builder、update、delete使用方法
2014/04/30 PHP
php获取数组元素中头一个数组元素值的实现方法
2014/12/20 PHP
精选的10款用于构建良好易用性网站的jQuery插件
2011/01/23 Javascript
javascript检测浏览器flash版本的实现代码
2011/12/06 Javascript
js 取时间差去掉周六周日实现代码
2012/12/25 Javascript
jquery ajax同步异步的执行最终解决方案
2013/04/26 Javascript
基于javascript 闭包基础分享
2013/07/10 Javascript
input链接页面、打开新网页等等的具体实现
2013/12/30 Javascript
jQuery实现的原图对比窗帘效果
2014/06/15 Javascript
深入理解JavaScript中的对象
2015/06/04 Javascript
JSON遍历方式实例总结
2015/12/07 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
2016/07/09 Javascript
vue.js初学入门教程(2)
2016/11/07 Javascript
简单实现js浮动框
2016/12/13 Javascript
JS实现自定义状态栏动画文字效果示例
2017/10/12 Javascript
JS实现图片轮播效果实例详解【可自动和手动】
2019/04/04 Javascript
Vue 实现显示/隐藏层的思路(加全局点击事件)
2019/12/31 Javascript
Python CSV模块使用实例
2015/04/09 Python
Python输出PowerPoint(ppt)文件中全部文字信息的方法
2015/04/28 Python
Python文档生成工具pydoc使用介绍
2015/06/02 Python
Python中使用Counter进行字典创建以及key数量统计的方法
2018/07/06 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
2018/12/16 Python
详解python解压压缩包的五种方法
2019/07/05 Python
把vgg-face.mat权重迁移到pytorch模型示例
2019/12/27 Python
python def 定义函数,调用函数方式
2020/06/02 Python
教育项目合作协议书格式
2014/10/17 职场文书
婚内分居协议书范文
2014/11/26 职场文书
六年级学生评语大全
2014/12/26 职场文书
2016年高校自主招生自荐信范文
2015/03/24 职场文书
2015国庆66周年宣传语
2015/07/14 职场文书
情感电台广播稿
2015/08/18 职场文书
2019让人心动的商业计划书
2019/06/27 职场文书
Win11快速关闭所有广告推荐
2022/04/19 数码科技