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牛刀小试密码爆破
Feb 03 Python
windows系统下Python环境搭建教程
Mar 28 Python
Python多线程实现同步的四种方式
May 02 Python
python绘制双柱形图代码实例
Dec 14 Python
Python 实现数据结构-堆栈和队列的操作方法
Jul 17 Python
python Opencv计算图像相似度过程解析
Dec 03 Python
Python 没有main函数的原因
Jul 10 Python
Windows下PyCharm配置Anaconda环境(超详细教程)
Jul 31 Python
Python操作Word批量生成合同的实现示例
Aug 28 Python
golang/python实现归并排序实例代码
Aug 30 Python
python模拟点击玩游戏的实例讲解
Nov 26 Python
教你用Python+selenium搭建自动化测试环境
Jun 18 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表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法
2011/08/22 PHP
PHP数据类型之布尔型的介绍
2013/04/28 PHP
定义php常量的详解
2013/06/09 PHP
php使用类继承解决代码重复的问题
2015/02/11 PHP
PHP+原生态ajax实现的省市联动功能详解
2017/08/15 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
基于Laravel-admin 后台的自定义页面用法详解
2019/09/30 PHP
js null,undefined,字符串小结
2010/08/21 Javascript
基于JavaScript实现生成名片、链接等二维码
2015/09/20 Javascript
跟我学习javascript创建对象(类)的8种方法
2015/11/20 Javascript
动态的9*9乘法表效果的实现代码
2016/05/16 Javascript
JS跨域交互(jQuery+php)之jsonp使用心得
2016/07/01 Javascript
jquery二级目录选中当前页的css样式
2016/12/08 Javascript
AngularJS的Filter的示例详解
2017/03/07 Javascript
浅谈vue-cli 3.0.x 初体验
2018/04/11 Javascript
js+html5实现手机九宫格密码解锁功能
2018/07/30 Javascript
echarts 使用formatter 修改鼠标悬浮事件信息操作
2020/07/20 Javascript
JavaScript实现刮刮乐效果
2020/11/01 Javascript
vue 判断两个时间插件结束时间必选大于开始时间的代码
2020/11/04 Javascript
JavaScript async/await原理及实例解析
2020/12/02 Javascript
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
2016/05/27 Python
Python字符串处理实例详解
2017/05/18 Python
Python 实现文件读写、坐标寻址、查找替换功能
2019/09/11 Python
Django连接数据库并实现读写分离过程解析
2019/11/13 Python
基于python实现破解滑动验证码过程解析
2020/05/28 Python
瑞士领先的网上超市:LeShop.ch
2018/11/14 全球购物
牦牛毛户外探险服装:Kora
2019/02/08 全球购物
META-INF文件夹中的MANIFEST.MF的作用
2016/06/21 面试题
资产经营总监岗位职责范文
2013/12/01 职场文书
离婚被告代理词
2015/05/23 职场文书
青年文明号创建口号大全
2015/12/25 职场文书
MySQL REVOKE实现删除用户权限
2021/06/18 MySQL
Spring Boot项目传参校验的最佳实践指南
2022/04/05 Java/Android
Win11怎么把合并的任务栏分开 Win11任务栏合并分开教程
2022/04/06 数码科技
windows server2008 开启端口的实现方法
2022/06/25 Servers
Win10开机修复磁盘错误怎么跳过?Win10关闭开机磁盘检查的方法
2022/09/23 数码科技