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操作mongodb根据_id查询数据的实现方法
May 20 Python
Python调用SQLPlus来操作和解析Oracle数据库的方法
Apr 09 Python
Python批量修改文本文件内容的方法
Apr 29 Python
Python的dict字典结构操作方法学习笔记
May 07 Python
Python中遇到的小问题及解决方法汇总
Jan 11 Python
Python自动发邮件脚本
Mar 31 Python
python3学习笔记之多进程分布式小例子
Feb 13 Python
Python pyinotify日志监控系统处理日志的方法
Mar 08 Python
关于不懂Chromedriver如何配置环境变量问题解决方法
Jun 12 Python
pandas 层次化索引的实现方法
Jul 06 Python
python对 MySQL 数据库进行增删改查的脚本
Oct 22 Python
python 如何用terminal输入参数
May 25 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+MSSQL分页的例子
2006/10/09 PHP
ThinkPHP模版引擎之变量输出详解
2014/12/05 PHP
PHP6连接SQLServer2005的三部曲
2016/04/15 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
2019/05/09 PHP
JavaScript Cookie 直接浏览网站分网址
2009/12/08 Javascript
Extjs Ext.MessageBox.confirm 确认对话框详解
2010/04/02 Javascript
JQuery实现表格中相同单元格合并示例代码
2013/06/26 Javascript
js捕获鼠标滚轮事件代码
2013/12/16 Javascript
nodejs实现bigpipe异步加载页面方案
2016/01/26 NodeJs
javascript时间戳和日期字符串相互转换代码(超简单)
2016/06/22 Javascript
Google 地图获取API Key详细教程
2016/08/06 Javascript
浅析vue 函数配置项watch及函数 $watch 源码分享
2018/11/22 Javascript
react项目如何使用iconfont的方法步骤
2019/03/13 Javascript
layui加载表格,绑定新增,编辑删除,查看按钮事件的例子
2019/09/06 Javascript
layui 地区三级联动 form select 渲染的实例
2019/09/27 Javascript
JavaScript字符串处理常见操作方法小结
2019/11/15 Javascript
python使用urllib模块开发的多线程豆瓣小站mp3下载器
2014/01/16 Python
Python中类的继承代码实例
2014/10/28 Python
python中管道用法入门实例
2015/06/04 Python
通过Python 获取Android设备信息的轻量级框架
2017/12/18 Python
Python判断是否json是否包含一个key的方法
2018/12/31 Python
python多进程下实现日志记录按时间分割
2019/07/22 Python
Python字典推导式将cookie字符串转化为字典解析
2019/08/10 Python
Python二元赋值实用技巧解析
2019/10/25 Python
解决django model修改添加字段报错的问题
2019/11/18 Python
Python 静态方法和类方法实例分析
2019/11/21 Python
使用 Python 在京东上抢口罩的思路详解
2020/02/27 Python
python boto和boto3操作bucket的示例
2020/10/30 Python
导师工作推荐信范文
2014/05/17 职场文书
2014年学校工会工作总结
2014/12/06 职场文书
2014年客服工作总结与计划
2014/12/09 职场文书
学年个人总结范文
2015/03/05 职场文书
公司规章制度范本
2015/08/03 职场文书
导游词之峨眉山
2019/12/16 职场文书
Python基于百度API识别并提取图片中文字
2021/06/27 Python
Java设计模式之代理模式
2022/04/22 Java/Android