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格式化css文件的方法
Mar 10 Python
利用ctypes提高Python的执行速度
Sep 09 Python
Python数据分析库pandas基本操作方法
Apr 08 Python
Python实现数据结构线性链表(单链表)算法示例
May 04 Python
python的pygal模块绘制反正切函数图像方法
Jul 16 Python
python 实现GUI(图形用户界面)编程详解
Jul 17 Python
Djang的model创建的字段和参数详解
Jul 27 Python
Laravel框架表单验证格式化输出的方法
Sep 25 Python
用Python去除图像的黑色或白色背景实例
Dec 12 Python
基于Python测试程序是否有错误
May 16 Python
Django 解决distinct无法去除重复数据的问题
May 20 Python
Python生成pdf目录书签的实例方法
Oct 29 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
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
2014/04/08 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
2015/03/18 PHP
php使用Jpgraph绘制饼状图的方法
2015/06/10 PHP
php读取torrent种子文件内容的方法(测试可用)
2016/05/03 PHP
thinkphp分页集成实例
2017/07/24 PHP
Laravel 框架返回状态拦截代码
2019/10/18 PHP
Prototype Selector对象学习
2009/07/23 Javascript
通用javascript脚本函数库 方便开发
2009/10/13 Javascript
url 特殊字符 传递参数解决方法
2010/01/01 Javascript
javascript/jquery获取地址栏url参数的方法
2014/03/05 Javascript
Jsonp post 跨域方案
2015/07/06 Javascript
JS实现Fisheye效果动感放大菜单代码
2015/10/21 Javascript
javascript将中国数字格式转换成欧式数字格式的简单实例
2016/08/02 Javascript
微信小程序 用户数据解密详细介绍
2017/01/09 Javascript
微信小程序 跳转方式总结
2017/04/20 Javascript
Vue内容分发slot(全面解析)
2017/08/19 Javascript
使用JQ完成表格隔行换色的简单实例
2017/08/25 Javascript
vue2 mint-ui loadmore实现下拉刷新,上拉更多功能
2018/03/21 Javascript
JavaScript ES6箭头函数使用指南
2018/12/30 Javascript
微信小程序textarea层级过高(盖住其他元素)问题的解决办法
2019/03/04 Javascript
Vue通过provide inject实现组件通信
2020/09/03 Javascript
Vue如何实现变量表达式选择器
2021/02/18 Vue.js
[15:20]DOTA2-DPC中国联赛 正赛 Elephant vs Aster 选手采访
2021/03/11 DOTA
python判断端口是否打开的实现代码
2013/02/10 Python
Python写的服务监控程序实例
2015/01/31 Python
django 类视图的使用方法详解
2019/07/24 Python
Python一行代码解决矩阵旋转的问题
2019/11/30 Python
Python图像处理之膨胀与腐蚀的操作
2021/02/07 Python
瑞典最好的运动鞋专卖店:Sneakersnstuff
2016/08/29 全球购物
Juicy Couture Beauty官方网站:香水和化妆品
2019/03/12 全球购物
荷兰照明、灯具和配件网上商店:dmlights
2019/08/25 全球购物
心得体会怎么写
2013/12/30 职场文书
生日寄语大全
2014/04/08 职场文书
观看信仰心得体会
2014/09/04 职场文书
大学生自荐材料范文
2014/12/30 职场文书
手把手带你彻底卸载MySQL数据库
2022/06/14 MySQL