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 相关文章推荐
tornado框架blog模块分析与使用
Nov 21 Python
使用Protocol Buffers的C语言拓展提速Python程序的示例
Apr 16 Python
详解Django中的ifequal和ifnotequal标签使用
Jul 16 Python
wxpython中自定义事件的实现与使用方法分析
Jul 21 Python
python 转换 Javascript %u 字符串为python unicode的代码
Sep 06 Python
Python 记录日志的灵活性和可配置性介绍
Feb 27 Python
python range()函数取反序遍历sequence的方法
Jun 25 Python
python读写配置文件操作示例
Jul 03 Python
Python编程快速上手——PDF文件操作案例分析
Feb 28 Python
Python-jenkins模块之folder相关操作介绍
May 12 Python
python:删除离群值操作(每一行为一类数据)
Jun 08 Python
用Python自动清理系统垃圾的实现
Jan 18 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
php empty 函数判断结果为空但实际值却为非空的原因解析
2018/05/28 PHP
google地图的路线实现代码
2009/08/20 Javascript
Textbox控件注册回车事件及触发按钮提交事件具体实现
2013/03/04 Javascript
jQuery对象数据缓存Cache原理及jQuery.data方法区别介绍
2013/04/07 Javascript
jqGrid增加时--判断开始日期与结束日期(实例解析)
2013/11/08 Javascript
js简单实现点击左右运动的方法
2015/04/10 Javascript
Backbone.js 0.9.2 源码注释中文翻译版
2015/06/25 Javascript
使用NodeJs 开发微信公众号(三)微信事件交互实例
2016/03/02 NodeJs
web前端vue之CSS过渡效果示例
2018/01/10 Javascript
VUE v-for循环中每个item节点动态绑定不同函数的实例
2018/09/26 Javascript
深入浅析nuxt.js基于ssh的vue通用框架
2019/05/21 Javascript
vue使用swiper.js重叠轮播组建样式
2019/11/14 Javascript
js中Function引用类型常见有用的方法和属性详解
2019/12/11 Javascript
微信小程序开发打开另一个小程序的实现方法
2020/05/17 Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
2020/07/28 Javascript
原生js生成图片验证码
2020/10/11 Javascript
uniapp实现可以左右滑动导航栏
2020/10/21 Javascript
[02:51]DOTA2英雄基础教程 艾欧
2014/01/13 DOTA
python网络编程示例(客户端与服务端)
2014/04/24 Python
Python中使用Inotify监控文件实例
2015/02/14 Python
python用模块zlib压缩与解压字符串和文件的方法
2016/12/16 Python
K-means聚类算法介绍与利用python实现的代码示例
2017/11/13 Python
Python简单过滤字母和数字的方法小结
2019/01/09 Python
Anaconda3中的Jupyter notebook添加目录插件的实现
2020/05/18 Python
Python3爬虫关于代理池的维护详解
2020/07/30 Python
严选全球尖货,立足香港:Bonpont宝盆
2018/07/24 全球购物
成人大专生实习期的自我评价
2013/10/02 职场文书
庆八一活动方案
2014/01/25 职场文书
会计专业大学生职业生涯规划书
2014/02/11 职场文书
三项教育活动实施方案
2014/03/30 职场文书
财务科长个人对照检查材料
2014/09/18 职场文书
介绍信样本
2015/01/31 职场文书
项目验收申请报告
2015/05/15 职场文书
安全教育观后感
2015/06/17 职场文书
公司老总年会致辞
2015/07/30 职场文书
SQL Server基本使用和简单的CRUD操作
2021/04/05 SQL Server