当前位置:  开发笔记 > 编程语言 > 正文

如何在Python中实现多处理优先级队列?

如何解决《如何在Python中实现多处理优先级队列?》经验,为你挑选了1个好方法。

有谁熟悉如何在python中实现多处理优先级队列?



1> Alex Martell..:

唉,它就像改变旧的排队规则一样简单Queue.Queue:后者实际上是根据模板方法模式设计的子类,并且只覆盖钩子方法_put和/或_get可以轻松地允许改变排队规则(在2.6提供了显式LIFO和优先级实现,但即使在早期版本的Python中也很容易实现.

对于多处理,在一般情况下(多个读取器,多个写入器),我看不到如何实现优先级队列的解决方案,除了放弃队列的分布式性质; 指定一个特殊的辅助进程,它只处理队列,向它发送(基本上)RPC以创建具有指定规则的队列,执行put和get,获取有关它的信息,&c.因此,人们会遇到通常的问题,即确保每个进程都知道辅助进程的位置(主机和端口,等等)(如果进程总是在主进程启动时生成,则会更容易).一个非常大的问题,特别是如果一个人希望以良好的性能做到这一点,可以防止aux proc的崩溃(需要将数据复制到从属进程,如果主机崩溃,则在奴隶之间分配"主选举",等等).从头开始这样做听起来像博士的工作.一个人可能从约翰逊的工作开始,或者捎带一些非常通用的方法,比如ActiveMQ.

一些特殊情况(例如单个阅读器,单个写入器)可能更容易,并且对于其有限的应用领域变得更快; 但是应该为该有限区域制定一个非常明确的限制规范 - 结果不会构成(通用)"多处理队列",但只适用于给定的约束要求集.

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有