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实现扫描局域网活动ip(扫描在线电脑)
Apr 28 Python
Python模拟登陆淘宝并统计淘宝消费情况的代码实例分享
Jul 04 Python
python pandas 组内排序、单组排序、标号的实例
Apr 12 Python
python得到电脑的开机时间方法
Oct 15 Python
实例讲解Python中整数的最大值输出
Mar 17 Python
python3+PyQt5 创建多线程网络应用-TCP客户端和TCP服务器实例
Jun 17 Python
详解用pyecharts Geo实现动态数据热力图城市找不到问题解决
Jun 26 Python
python 协程中的迭代器,生成器原理及应用实例详解
Oct 28 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
Dec 04 Python
python将图片转base64,实现前端显示
Jan 09 Python
python字典key不能是可以是啥类型
Aug 04 Python
python爬虫框架feapde的使用简介
Apr 20 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
Content-type 的说明
2006/10/09 PHP
PHP中extract()函数的定义和用法
2012/08/17 PHP
如何使用“PHP” 彩蛋进行敏感信息获取
2013/08/07 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
2019/01/10 PHP
PHP实现提高SESSION响应速度的几种方法详解
2019/08/09 PHP
用htc组件制作windows选项卡
2007/01/13 Javascript
JavaScript入门教程 Cookies
2009/01/31 Javascript
网站页面自动跳转实现方法PHP、JSP(下)
2010/08/01 Javascript
javascript 单例/单体模式(Singleton)
2011/04/07 Javascript
页面使用密码保护代码
2013/04/10 Javascript
javascript拖拽上传类库DropzoneJS使用方法
2013/12/05 Javascript
JS冒泡事件的快速解决方法
2013/12/16 Javascript
javascript文件中引用依赖的js文件的方法
2014/03/17 Javascript
js中this用法实例详解
2015/05/05 Javascript
vue-cli如何快速构建vue项目
2017/04/26 Javascript
原生JS发送异步数据请求
2017/06/08 Javascript
JS交互点击WKWebView中的图片实现预览效果
2018/01/05 Javascript
angular动态表单制作
2018/02/23 Javascript
JavaScript控制浏览器全屏显示简单示例
2018/07/05 Javascript
[50:27]Secret vs VG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python与Redis的连接教程
2015/04/22 Python
python通过pip更新所有已安装的包实现方法
2017/05/19 Python
Python实现的人工神经网络算法示例【基于反向传播算法】
2017/11/11 Python
Python编程实现蚁群算法详解
2017/11/13 Python
Python字符串拼接六种方法介绍
2017/12/18 Python
对python使用http、https代理的实例讲解
2018/05/07 Python
Python中Unittest框架的具体使用
2019/08/27 Python
Python综合应用名片管理系统案例详解
2020/01/03 Python
python3实现raspberry pi(树莓派)4驱小车控制程序
2020/02/12 Python
区域总监的岗位职责
2013/11/21 职场文书
董事长秘书职责
2014/01/31 职场文书
献爱心活动总结
2014/05/07 职场文书
企业党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
国土资源局开展党的群众路线教育实践活动整改措施
2014/09/26 职场文书
房屋所有权证明
2015/06/19 职场文书