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脚本来实现最简单的FTP下载的教程
May 04 Python
Python创建模块及模块导入的方法
May 27 Python
在Python的Django框架中simple-todo工具的简单使用
May 30 Python
详解Python中contextlib上下文管理模块的用法
Jun 28 Python
怎么使用pipenv管理你的python项目
Mar 12 Python
Python连接Redis的基本配置方法
Sep 13 Python
Django项目主urls导入应用中views的红线问题解决
Aug 10 Python
python无序链表删除重复项的方法
Jan 17 Python
深入浅析python 中的self和cls的区别
Jun 20 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
Sep 01 Python
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
Jun 09 Python
Python安装使用Scrapy框架
Apr 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中在数据库中保存Checkbox数据(1)
2006/10/09 PHP
php中addslashes函数与sql防注入
2014/11/17 PHP
PHP简单实现记录网站访问量功能示例
2018/06/06 PHP
laravel中的fillable和guarded属性详解
2019/10/23 PHP
innerHTML 和 getElementsByName 在IE下面的bug 的解决
2010/04/09 Javascript
js渐变显示渐变消失示例代码
2013/08/01 Javascript
javascript轻量级模板引擎juicer使用指南
2014/06/22 Javascript
js根据鼠标移动速度背景图片自动旋转的方法
2015/02/28 Javascript
JavaScript实现的背景自动变色代码
2015/10/17 Javascript
Javascript json object 与string 相互转换的简单实现
2016/09/27 Javascript
JavaScript中校验银行卡号的实现代码
2016/12/19 Javascript
浅析Python的web.py框架中url的设定方法
2016/07/11 Python
python利用正则表达式排除集合中字符的功能示例
2017/10/10 Python
用python标准库difflib比较两份文件的异同详解
2018/11/16 Python
使用memory_profiler监测python代码运行时内存消耗方法
2018/12/03 Python
解决python3中的requests解析中文页面出现乱码问题
2019/04/19 Python
Python中py文件转换成exe可执行文件的方法
2019/06/14 Python
关于Numpy中的行向量和列向量详解
2019/11/30 Python
在win64上使用bypy进行百度网盘文件上传功能
2020/01/02 Python
python爬虫开发之selenium模块详细使用方法与实例全解
2020/03/09 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
2020/04/26 Python
Python+Django+MySQL实现基于Web版的增删改查的示例代码
2020/05/13 Python
解决keras加入lambda层时shape的问题
2020/06/11 Python
python字典key不能是可以是啥类型
2020/08/04 Python
Python常用GUI框架原理解析汇总
2020/12/07 Python
美国智能家居专家:tink
2019/06/04 全球购物
DC Shoes澳大利亚官方网上商店:购买DC鞋子
2019/10/25 全球购物
Envie de Fraise意大利:法国网上推出的孕妇装品牌
2020/10/18 全球购物
新闻专业个人求职信
2013/12/19 职场文书
军校本科大学生自我评价
2014/01/14 职场文书
构建和谐校园倡议书
2015/01/19 职场文书
保护校园环境倡议书
2015/04/28 职场文书
2015教师节通讯稿
2015/07/20 职场文书
2019年消防宣传标语集锦
2019/11/21 职场文书
pandas取dataframe特定行列的实现方法
2021/05/24 Python
Python内置数据类型中的集合详解
2022/03/18 Python