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使用PIL缩放网络图片并保存的方法
Apr 24 Python
详解Django中Request对象的相关用法
Jul 17 Python
Python编码类型转换方法详解
Jul 01 Python
python读取二进制mnist实例详解
May 31 Python
python 中的divmod数字处理函数浅析
Oct 17 Python
python实现Virginia无密钥解密
Mar 20 Python
Python实现连接MySql数据库及增删改查操作详解
Apr 16 Python
pytorch 常用线性函数详解
Jan 15 Python
python连接mongodb集群方法详解
Feb 13 Python
django自定义非主键自增字段类型详解(auto increment field)
Mar 30 Python
python 如何区分return和yield
Sep 22 Python
python dir函数快速掌握用法技巧
Dec 09 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 函数中使用static的说明
2012/06/01 PHP
ThinkPHP视图查询详解
2014/06/30 PHP
Yii2 rbac权限控制之菜单menu实例教程
2016/04/28 PHP
超强的IE背景图片闪烁(抖动)的解决办法
2007/09/09 Javascript
chrome浏览器不支持onmouseleave事件的解决技巧
2013/05/31 Javascript
onbeforeunload与onunload事件异同点总结
2013/06/24 Javascript
使用AngularJS实现可伸缩的页面切换的方法
2015/06/19 Javascript
JQuery实现的按钮倒计时效果
2015/12/23 Javascript
微信小程序 toast 详解及实例代码
2016/11/09 Javascript
jQuery用FormData实现文件上传的方法
2016/11/21 Javascript
基于jQuery选择器之表单对象属性筛选选择器的实例
2017/09/19 jQuery
bootstrap select下拉搜索插件使用方法详解
2017/11/23 Javascript
基于Vue2.X的路由和钩子函数详解
2018/02/09 Javascript
使用vue-router为每个路由配置各自的title
2018/07/30 Javascript
vue-cli初始化项目中使用less的方法
2018/08/09 Javascript
微信小程序实现带缩略图轮播效果
2018/11/04 Javascript
Angular(5.2->6.1)升级小结
2018/12/27 Javascript
详解vue中router-link标签所必备了解的属性
2019/04/15 Javascript
小程序点击图片实现png转jpg
2019/10/22 Javascript
JavaScript类的继承多种实现方法
2020/05/30 Javascript
[10:28]2018DOTA2国际邀请赛寻真——VGJ.S寻梦之路
2018/08/15 DOTA
在Python的Django框架中包装视图函数
2015/07/20 Python
python3之模块psutil系统性能信息使用
2018/05/30 Python
Python 串口读写的实现方法
2019/06/12 Python
Django工程的分层结构详解
2019/07/18 Python
推荐8款常用的Python GUI图形界面开发框架
2020/02/23 Python
python3.9.1环境安装的方法(图文)
2021/02/02 Python
Canvas实现贝赛尔曲线轨迹动画的示例代码
2019/04/25 HTML / CSS
美国娱乐和流行文化商品店:FYE
2017/09/14 全球购物
马来西亚和新加坡巴士票在线预订:CatchThatBus
2018/11/17 全球购物
be2台湾单身男女交友:全球网路婚姻介绍的领导品牌
2019/10/11 全球购物
英国男女豪华配饰和礼品网站:Black.co.uk
2020/02/28 全球购物
社区党建工作总结2015
2015/05/13 职场文书
2016年劳模先进事迹材料
2016/02/25 职场文书
2019 入党申请书范文
2019/07/10 职场文书
使用python生成大量数据写入es数据库并查询操作(2)
2022/09/23 Python