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编写分析Python程序性能的工具的教程
Apr 01 Python
Python的SQLAlchemy框架使用入门
Apr 29 Python
python插入排序算法实例分析
Jul 03 Python
Python中文竖排显示的方法
Jul 28 Python
Python使用Beautiful Soup包编写爬虫时的一些关键点
Jan 20 Python
基于Python如何使用AIML搭建聊天机器人
Jan 27 Python
Python基于Flask框架配置依赖包信息的项目迁移部署
Mar 02 Python
python flask解析json数据不完整的解决方法
May 26 Python
如何给Python代码进行加密
Jan 10 Python
Pytorch中的自动求梯度机制和Variable类实例
Feb 29 Python
jupyter note 实现将数据保存为word
Apr 14 Python
Python Parser的用法
May 12 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分页思路以及在ZF中的使用
2012/05/30 PHP
php Session无效分析资料整理
2016/11/29 PHP
php判断电子邮件是否正确方法
2018/12/04 PHP
Laravel5.7框架安装与使用学习笔记图文详解
2019/04/02 PHP
『jQuery』.html(),.text()和.val()的概述及使用
2013/04/22 Javascript
用于deeplink的js方法(判断手机是否安装app)
2014/04/02 Javascript
SuperSlide2实现图片滚动特效
2014/06/20 Javascript
随鼠标移动的时钟非常漂亮遗憾的是只支持IE
2014/08/12 Javascript
js简单实现竖向tab选项卡的方法
2015/05/04 Javascript
js图片翻书效果代码分享
2015/08/20 Javascript
JavaScript面试题(指针、帽子和女朋友)
2016/11/23 Javascript
探讨Vue.js的组件和模板
2017/10/27 Javascript
Vue官网todoMVC示例代码
2018/01/29 Javascript
vue中接口域名配置为全局变量的实现方法
2018/09/20 Javascript
vue实现百度下拉列表交互操作示例
2019/03/12 Javascript
如何给element添加一个抽屉组件的方法步骤
2019/07/14 Javascript
Vue element-ui父组件控制子组件的表单校验操作
2020/07/17 Javascript
vue 点击其他区域关闭自定义div操作
2020/07/17 Javascript
Python下实现的RSA加密/解密及签名/验证功能示例
2017/07/17 Python
python中利用Future对象异步返回结果示例代码
2017/09/07 Python
Python实现简单http服务器
2018/04/12 Python
浅谈Django中的数据库模型类-models.py(一对一的关系)
2018/05/30 Python
python得到qq句柄,并显示在前台的方法
2018/10/14 Python
基于OpenCV python3实现证件照换背景的方法
2019/03/22 Python
python中break、continue 、exit() 、pass终止循环的区别详解
2019/07/08 Python
python实现飞机大战项目
2020/03/11 Python
Pytest单元测试框架如何实现参数化
2020/09/05 Python
详解CSS3:overflow属性
2020/11/17 HTML / CSS
丝芙兰美国官网:SEPHORA美国
2016/08/03 全球购物
采用专利算法搜索最廉价的机票:CheapAir
2016/09/10 全球购物
关于工资低的辞职信
2014/01/14 职场文书
文字自荐书范文
2014/02/10 职场文书
医学院毕业生自荐信范文
2014/03/06 职场文书
外贸专业求职信
2014/03/09 职场文书
委托书的格式
2014/08/01 职场文书
党员检讨书范文
2014/12/27 职场文书