python--pipe
1.pipe
除了使用队列外,还可以使用管道在进程间执行消息传递
pipe([]duplex)
在进程间创建一条管道,并返回元组(conn1,conn2),其中conn1和conn2是表示管道两端的Connection对象。默认控制下管道是双向的。如果将duplex设为False,conn1只能接受,conn2只能用于发送。
2.code
import multiprocessing
def consumer(pipe):
output_p,input_p=pipe
input_p.close()
while True:
try:
item=output_p.recv()
except EOFError:
break
print(item)
print('Consumer done')
def producer(sequence,input_p):
for item in sequence:
#将项放入队列
input_p.send(item)
if __name__=='__main__':
(output_p,input_p)=multiprocessing.Pipe()
'''''running consumer processing'''
consumer_p=multiprocessing.Process(target=consumer,args=((output_p,input_p),))
consumer_p.start()
#关闭生产者中管道
output_p.close()
'''''producing many Queues,run producer'''
sequence=[1,2,3,4,5]
producer(sequence,input_p)
input_p.close()
'''''waiting processing'''
consumer_p.join()
应该特别注意管道端点的管理问题。如果生产者与消费者都没有使用管道某个端点就应该将其关闭,这就是为什么我们把生产者的输出管道关闭,并且把消费者的输入端关闭的原因。
python--pipe的更多相关文章
- python Pipe 双管道通信
管道:是python多进程中一种交换数据的方式 from multiprocessing import Process,current_process,Queue,Pipe import time i ...
- python pipe stdout 实现cat|grep 功能
从hdfs里获取希望的数据: import subprocess for day in range(22, 23): for h in range(17, 24): filename = " ...
- Python语言系列-10-数据库
MySQL 基础环境准备 readme.txt 作者:Alnk(李成果) 版本:v1.0 安装mysql数据库 略 创建student库 # mysql> create database stu ...
- Non-blocking read on a subprocess.PIPE in python
import sys from subprocess import PIPE, Popen from threading import Thread try: from Queue import Qu ...
- Python 3 利用 subprocess 实现管道( pipe )交互操作读/写通信
这里我们用Windows下的shell来举例: from subprocess import * #因为是举例,就全部导入了 为了方便你理解,我们用一个很简单的一段代码来说明: 可以看见我们利用Pop ...
- python多进程程序之间交换数据的两种办法--Queue和Pipe
合在一起作的测试. #!/usr/bin/env python # -*- coding: utf-8 -*- import multiprocessing import random import ...
- 【python】使用unix管道pipe处理stdout实时数据
现在有个实时抓包处理的程序,大概的流程是 使用tshark抓包->实时上传,如果写log的话是可以的,但是log文件切割需要定时执行. 由于log中有些内容需要实时处理,延迟时间会导致数据误差, ...
- Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函数 os模块 hashlib模块 platform模块 csv模块
Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函 ...
- hive使用python脚本导致java.io.IOException: Broken pipe异常退出
反垃圾rd那边有一个hql,在执行过程中出现错误退出,报java.io.IOException: Broken pipe异常,hql中使用到了python脚本,hql和python脚本最近没有人改过, ...
- 【python中调用shell命令使用PIPE】使用PIPE作为stdout出现假卡死的情况——将stdout重定向为输出到临时文件
在Python中,调用:subprocess.Popen(cmd, stdout = PIPE, stderr = PIPE, shell= true)的时候,如果调用的shell命令本身在执行之后会 ...
随机推荐
- Delphi中的堆,栈
来自:http://blog.163.com/liang_liu99/blog/static/884152162009111303756371/ --------------------------- ...
- hdu 5157(树状数组+Manacher)
Harry and magic string Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/O ...
- react setState里的作用域
从接触racet开始,我们就认识了setState,它是对全局变量进去更新的一个重要方法, 不仅可以更新数据,还能在更新后执行方法时直接调用刚刚更新的数据 今天碰到的问题就在于它的作用域的先后问题 先 ...
- (13)C#数组
如果需要使用同一类型的多个对象,数组是一种数据结构,它包含同一类型的多个元素 一.一维数组 1.数组的声明方法 int [] a; 因为数组是引用类型,引用类型有个特点是:声明变量时不会马上分配一个内 ...
- Codeforces 935E Fafa and Ancient Mathematics(表达式转树 + 树型DP)
题目链接 Codeforces Round #465 (Div. 2) Problem E 题意 给定一个表达式,然后用$P$个加号和$M$个减号填充所有的问号(保证问号个数等于$P + M$) ...
- PowerDisginer中NAME与COMMENT转换脚本
Option Explicit ValidationMode = True InteractiveMode = im_Batch Dim mdl ' the current model ' get t ...
- 程设刷题 | 程序设计实践II-2017(部分)
目录 1165-算术题 题目描述 代码实现 1184-Tourist 1 题目描述 代码实现 1186-Tourist 2 题目描述 代码实现 1224-LOVE 题目描述 代码实现 1256-湘潭大 ...
- C#实现简单的字符串加密
最近用到一些字符串加密,而.net中提供的加密算法中用起来比较复杂,便简单的封装了一下,方便日后使用. public class Encrypt { static Enco ...
- 前端福利:一套UI框架
阅读目录 背景 预览效果 表单组件 普通文本框 多行文本框 复选框 切换滑块 单选框 下拉选择框 数字输入框 时间选择 文件选择 显示文本 按钮 开源地址 背景 目前市场上有很多表单美化的UI,做的都 ...
- 从let和const谈起
注册博客园账号也有好些年了,有事没事经常来逛逛,感觉博客园的同学们一直都很活跃,相比国内其他社区来讲,这里的技术氛围很浓,非常适合学习和交流,所以博主我也决定在这里驻扎了,在这里,博主希望能坚持写一些 ...