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 正则式 概述及常用字符
May 07 Python
Python中使用装饰器时需要注意的一些问题
May 11 Python
Python中的一些陷阱与技巧小结
Jul 10 Python
Python实现二叉搜索树
Feb 03 Python
Python实现的多线程http压力测试代码
Feb 08 Python
python计算列表内各元素的个数实例
Jun 29 Python
Flask框架WTForm表单用法示例
Jul 20 Python
浅谈python中拼接路径os.path.join斜杠的问题
Oct 23 Python
python用pandas数据加载、存储与文件格式的实例
Dec 07 Python
Python中six模块基础用法
Dec 08 Python
Python实现钉钉/企业微信自动打卡的示例代码
Feb 02 Python
python实现MD5进行文件去重的示例代码
Jul 09 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 删除记录同时删除图片文件的实现代码
2010/05/12 PHP
php中比较简单的导入phpmyadmin生成的sql文件的方法
2011/06/28 PHP
PHP性能优化 产生高度优化代码
2011/07/22 PHP
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)
2013/08/13 PHP
thinkPHP5实现数据库添加内容的方法
2017/10/25 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
javascript vvorld 在线加密破解方法
2008/11/13 Javascript
JS的千分位算法实现思路
2013/07/31 Javascript
禁止选中文字兼容IE、Chrome、FF等
2013/09/04 Javascript
用Node.js通过sitemap.xml批量抓取美女图片
2015/05/28 Javascript
如何实现移动端浏览器不显示 pc 端的广告
2015/10/15 Javascript
js获取当前年月日-YYYYmmDD格式的实现代码
2016/06/01 Javascript
bootstrapValidator自定验证方法写法
2016/12/01 Javascript
js面向对象编程总结
2017/02/16 Javascript
three.js绘制地球、飞机与轨迹的效果示例
2017/02/28 Javascript
ES6数组的扩展详解
2017/04/25 Javascript
js 判断一个数字是不是2的n次方幂的实例
2017/11/26 Javascript
trackingjs+websocket+百度人脸识别API实现人脸签到
2018/11/26 Javascript
vue cli3 配置proxy代理无效的解决
2019/10/30 Javascript
Vue基于iview table展示图片实现点击放大
2020/08/05 Javascript
[02:23]完美世界全国高校联赛街访DOTA2第一期
2019/11/28 DOTA
Python Mysql数据库操作 Perl操作Mysql数据库
2009/01/12 Python
在Django框架中伪造捕捉到的URLconf值的方法
2015/07/18 Python
利用python模拟sql语句对员工表格进行增删改查
2017/07/05 Python
解决Django migrate No changes detected 不能创建表的问题
2018/05/27 Python
Django 忘记管理员或忘记管理员密码 重设登录密码的方法
2018/05/30 Python
python面向对象入门教程之从代码复用开始(一)
2018/12/11 Python
python requests 库请求带有文件参数的接口实例
2019/01/03 Python
详解Anaconda安装tensorflow报错问题解决方法
2020/11/01 Python
super关键字的用法
2012/04/10 面试题
医学生自我评价
2014/01/27 职场文书
入党自我鉴定
2014/03/25 职场文书
《搭石》教学反思
2014/04/07 职场文书
大学班级学风建设方案
2014/05/01 职场文书
高校师德师风自我剖析材料
2014/09/29 职场文书
公司会议开幕词
2015/01/29 职场文书