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程序抓取新浪在国内的所有IP的教程
May 04 Python
关于Django外键赋值问题详解
Aug 13 Python
python3解析库pyquery的深入讲解
Jun 26 Python
python面向对象法实现图书管理系统
Apr 19 Python
用python求一个数组的和与平均值的实现方法
Jun 29 Python
Python3 元组tuple入门基础
Feb 09 Python
Python中的Cookie模块如何使用
Jun 04 Python
python如何实现DES加密
Sep 21 Python
Python如何使用ConfigParser读取配置文件
Nov 12 Python
scrapy在python爬虫中搭建出错的解决方法
Nov 22 Python
python 自动化偷懒的四个实用操作
Apr 11 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
Protoss兵种对照表
2020/03/14 星际争霸
山进SANGEAN ATS-909X电路分析
2021/03/02 无线电
PHP使用逆波兰式计算工资的方法
2015/07/29 PHP
php is_writable判断文件是否可写实例代码
2016/10/13 PHP
Laravel使用模型实现like模糊查询的例子
2019/10/24 PHP
无语,javascript居然支持中文(unicode)编程!
2007/04/12 Javascript
JavaScript 联动的无限级封装类,数据采用非Ajax方式,随意添加联动
2010/06/29 Javascript
JS判断数组中是否有重复值得三种实用方法
2013/08/16 Javascript
自己实现ajax封装示例分享
2014/04/01 Javascript
js函数内变量的作用域分析
2015/01/12 Javascript
很棒的js选项卡切换效果
2016/07/15 Javascript
JS图片等比例缩放方法完整示例
2016/08/03 Javascript
js+html5实现半透明遮罩层弹框效果
2020/08/24 Javascript
BootStrap模态框不垂直居中的解决方法
2017/10/19 Javascript
解决angularJS中input标签的ng-change事件无效问题
2018/09/13 Javascript
vue项目中使用Svg的方法
2018/10/24 Javascript
vue中 this.$set的用法详解
2019/09/06 Javascript
Ant Design Pro 之 ProTable使用操作
2020/10/31 Javascript
[03:26]回顾2015国际邀请赛中国区预选赛
2015/06/09 DOTA
Python语言实现机器学习的K-近邻算法
2015/06/11 Python
Python实现的径向基(RBF)神经网络示例
2018/02/06 Python
mac 安装python网络请求包requests方法
2018/06/13 Python
pycharm: 恢复(reset) 误删文件的方法
2018/10/22 Python
浅谈python新式类和旧式类区别
2019/04/26 Python
OpenCV搞定腾讯滑块验证码的实现代码
2019/05/18 Python
python爬取盘搜的有效链接实现代码
2019/07/20 Python
如何基于matlab相机标定导出xml文件
2020/11/02 Python
lululemon美国官网:瑜伽服+跑步装备
2018/11/16 全球购物
东南亚排名第一的服务市场:kaodim
2019/03/28 全球购物
毕业生优秀推荐信
2013/11/26 职场文书
求职教师自荐书
2014/06/19 职场文书
垃圾桶标语
2014/06/24 职场文书
高考1977观后感
2015/06/04 职场文书
大学生创业,为什么都会选择快餐饮?
2019/08/08 职场文书
JS Object构造函数之Object.freeze
2021/04/28 Javascript
如何用python清洗文件中的数据
2021/06/18 Python