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写asp详细讲解
Dec 16 Python
Python BeautifulSoup中文乱码问题的2种解决方法
Apr 22 Python
Python实现抓取页面上链接的简单爬虫分享
Jan 21 Python
Python自动化部署工具Fabric的简单上手指南
Apr 19 Python
浅析Python中的for 循环
Jun 09 Python
Python常用的内置序列结构(列表、元组、字典)学习笔记
Jul 08 Python
使用XML库的方式,实现RPC通信的方法(推荐)
Jun 14 Python
基于Python爬取爱奇艺资源过程解析
Mar 02 Python
Python中SQLite如何使用
May 27 Python
python 解决Windows平台上路径有空格的问题
Nov 10 Python
用python查找统一局域网下ip对应的mac地址
Jan 13 Python
python非标准时间的转换
Jul 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之第九天
2006/10/09 PHP
一个php作的文本留言本的例子(二)
2006/10/09 PHP
在windows服务器开启php的gd库phpinfo中未发现
2013/01/13 PHP
符合W3C网页标准的iframe标签的使用方法
2007/07/19 Javascript
JavaScript 调试器简介
2009/02/21 Javascript
javascript iframe内的函数调用实现方法
2009/07/19 Javascript
jQuery 常见学习网站与参考书
2009/11/09 Javascript
jQuery 表单验证扩展(三)
2010/10/20 Javascript
jquery post方式传递多个参数值后台以数组的方式进行接收
2013/01/11 Javascript
jQuery中bind与live的用法及区别小结
2014/01/27 Javascript
javascript生成随机大小写字母的方法
2014/02/20 Javascript
直接在JS里创建JSON数据然后遍历使用
2014/07/25 Javascript
Jquery异步提交表单代码分享
2015/03/26 Javascript
不同js异步函数同步的实现方法
2016/05/28 Javascript
JS获取url参数、主域名的方法实例分析
2016/08/03 Javascript
浅谈jquery上下滑动的注意事项
2016/10/13 Javascript
AngularJS深入探讨scope,继承结构,事件系统和生命周期
2016/11/02 Javascript
jQuery实现导航回弹效果
2017/02/27 Javascript
详解Node项目部署到云服务器上
2017/07/12 Javascript
详解tween.js的使用教程
2017/09/14 Javascript
Vue 动态路由的实现及 Springsecurity 按钮级别的权限控制
2019/09/05 Javascript
windows如何把已安装的nodejs高版本降级为低版本(图文教程)
2020/12/14 NodeJs
详解uniapp的全局变量实现方式
2021/01/11 Javascript
[40:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs TNC
2018/04/01 DOTA
解决Python3 被PHP程序调用执行返回乱码的问题
2019/02/16 Python
python实现opencv+scoket网络实时图传
2020/03/20 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
2020/06/02 Python
HTML5的标签的代码的简单介绍 HTML5标签的简介
2012/05/28 HTML / CSS
canvas绘制圆角头像的实现方法
2019/01/17 HTML / CSS
工商干部先进事迹
2014/05/14 职场文书
五水共治一句话承诺
2014/05/30 职场文书
2015年三八妇女节活动总结
2015/02/06 职场文书
离职信范本
2015/06/23 职场文书
详解Vue的options
2021/05/15 Vue.js
详解PHP Swoole与TCP三次握手
2021/05/27 PHP
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
2021/06/11 Python