python--pipe
2024-08-28 08:42:12
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()
应该特别注意管道端点的管理问题。如果生产者与消费者都没有使用管道某个端点就应该将其关闭,这就是为什么我们把生产者的输出管道关闭,并且把消费者的输入端关闭的原因。
最新文章
- Solr使用入门指南
- <;<;<; request.getParameterMap()方法
- 自定义底部tab
- StackOverflow Update: 560M Pageviews A Month, 25 Servers, And It&#39;s All About Performance
- jQuery实现登录提示
- Brush Mode --- Nyoj 737 分类: Brush Mode 2014-03-25 08:10 202人阅读 评论(0) 收藏
- lintcode :最长公共子串
- Oracle日志文件管理与查看
- 159. Longest Substring with At Most Two Distinct Characters
- Android UI设计系统-android selector 开始自定义样式
- Gentoo安装详解(三)-- 配置系统
- Android Handler消息机制不完全解析
- [LaTex]插图
- Pycharm使用教程(四)-安装python依赖包(非常详细,非常实用)
- centos7 mysql数据库的安装与使用
- Kotlin 随笔小计
- zookeeper三种模式安装详解(centos 7+zookeeper-3.4.9)
- CSS的再一次深入(更新中&#183;&#183;&#183;)
- C语言--第三周作业评分和总结(5班)
- HTML学习-2标记标签-2
热门文章
- java1.7集合源码阅读:ArrayList
- [BZOJ2038] [2009国家集训队]小Z的袜子(hose) 莫队算法练习
- (32)C#文件读写
- 搭建负载均衡的环境(利用虚拟机上的四台centos)
- ELK故障:elk在运行一段时间后,没有数据。
- 洛谷 P4551 最长异或路径
- Java重定向IO
- java多线程设计模式(3)读写锁模式
- Ubuntu 16.04安装Chrome浏览器时提示:N: 忽略‘google-chrome.list.1’(于目录‘/etc/apt/sources.list.d/’),鉴于它的文件扩展名无效
- java程序监控tomcat中部署的项目的状态以及控制某些项目的启动停止