Python multiprocessing模块中的Pipe管道使用实例


Posted in Python onApril 11, 2015

multiprocessing.Pipe([duplex])
返回2个连接对象(conn1, conn2),代表管道的两端,默认是双向通信.如果duplex=False,conn1只能用来接收消息,conn2只能用来发送消息.不同于os.open之处在于os.pipe()返回2个文件描述符(r, w),表示可读的和可写的

实例如下:

#!/usr/bin/python

#coding=utf-8

import os

from multiprocessing import Process, Pipe
def send(pipe):

    pipe.send(['spam'] + [42, 'egg'])

    pipe.close()
def talk(pipe):

    pipe.send(dict(name = 'Bob', spam = 42))

    reply = pipe.recv()

    print('talker got:', reply)
if __name__ == '__main__':

    (con1, con2) = Pipe()

    sender = Process(target = send, name = 'send', args = (con1, ))

    sender.start()

    print "con2 got: %s" % con2.recv()#从send收到消息

    con2.close()
    (parentEnd, childEnd) = Pipe()

    child = Process(target = talk, name = 'talk', args = (childEnd,))

    child.start()

    print('parent got:', parentEnd.recv())

    parentEnd.send({x * 2 for x in 'spam'})

    child.join()

    print('parent exit')

输出如下:

con2 got: ['spam', 42, 'egg']

('parent got:', {'name': 'Bob', 'spam': 42})

('talker got:', set(['ss', 'aa', 'pp', 'mm']))

parent exit
Python 相关文章推荐
python清除指定目录内所有文件中script的方法
Jun 30 Python
python字典的常用操作方法小结
May 16 Python
python魔法方法-属性访问控制详解
Jul 25 Python
基于DATAFRAME中元素的读取与修改方法
Jun 08 Python
详解python3 + Scrapy爬虫学习之创建项目
Apr 12 Python
树莓派实现移动拍照
Jun 22 Python
Python实现平行坐标图的两种方法小结
Jul 04 Python
在VS2017中用C#调用python脚本的实现
Jul 31 Python
关于Python3爬虫利器Appium的安装步骤
Jul 29 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
Sep 01 Python
Python爬虫之Selenium实现关闭浏览器
Dec 04 Python
python中Pyqt5使用Qlabel标签播放视频
Apr 22 Python
Python httplib模块使用实例
Apr 11 #Python
初步探究Python程序的执行原理
Apr 11 #Python
Python与shell的3种交互方式介绍
Apr 11 #Python
Python函数参数类型*、**的区别
Apr 11 #Python
Python中的多重装饰器
Apr 11 #Python
Python中的各种装饰器详解
Apr 11 #Python
将Django使用的数据库从MySQL迁移到PostgreSQL的教程
Apr 11 #Python
You might like
计算2000年01月01日起到指定日的天数
2006/10/09 PHP
PHP程序漏洞产生的原因分析与防范方法说明
2014/03/06 PHP
PHP封装的HttpClient类用法实例
2015/06/17 PHP
PHP中list方法用法示例
2016/12/01 PHP
jscript之Read an Excel Spreadsheet
2007/06/13 Javascript
让iframe子窗体取父窗体地址栏参数(querystring)
2009/10/13 Javascript
javascript检测对象中是否存在某个属性判断方法小结
2013/05/19 Javascript
js获取input标签的输入值实现代码
2013/08/05 Javascript
fckeditor粘贴Word时弹出窗口取消的方法
2014/10/30 Javascript
JavaScript中的null和undefined区别介绍
2015/01/01 Javascript
JavaScript仿微博输入框效果(案例分析)
2016/12/06 Javascript
laydate.js日期时间选择插件
2017/01/04 Javascript
原生js实现倒计时功能(多种格式调用)
2017/01/12 Javascript
js放到head中失效的原因与解决方法
2017/03/07 Javascript
vue-cli webpack模板项目搭建及打包时路径问题的解决方法
2018/02/26 Javascript
React组件中的this的具体使用
2018/02/28 Javascript
原生JS实现列表子元素顺序反转的方法分析
2018/07/02 Javascript
vue实现element-ui对话框可拖拽功能
2018/08/17 Javascript
浅谈javascript错误处理
2019/08/11 Javascript
vue-router 控制路由权限的实现
2020/09/24 Javascript
angular共享依赖的解决方案分享
2020/10/15 Javascript
[55:44]OG vs NAVI 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python比较两个图片相似度的方法
2015/03/13 Python
Python3 中把txt数据文件读入到矩阵中的方法
2018/04/27 Python
python代码编写计算器小程序
2020/03/30 Python
10分钟理解CSS3 FlexBox弹性布局
2018/12/20 HTML / CSS
html5 canvas移动浏览器上实现图片压缩上传
2016/03/11 HTML / CSS
Canvas多边形绘制的实现方法
2019/08/05 HTML / CSS
关于iframe跨域使用postMessage的实现
2019/10/29 HTML / CSS
生日派对邀请函
2014/01/13 职场文书
学校师德承诺书
2014/05/23 职场文书
安全目标责任书
2014/07/22 职场文书
音乐剧猫观后感
2015/06/04 职场文书
车位出租协议书范本
2016/03/19 职场文书
SQL SERVER中常用日期函数的具体使用
2021/04/08 SQL Server
PyQt5 显示超清高分辨率图片的方法
2021/04/11 Python