gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 00:47:03 26 4
gpt4 key购买 nike

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

最佳答案

唉,这可不像改变一个很好的旧 Queue.Queue 的排队规则那么简单:后者实际上被设计为根据模板方法模式进行子类化,并且只覆盖钩子(Hook)方法 _put 和/或 _get 可以很容易地允许更改排队规则(在 2.6 中提供了明确的 LIFO 和优先级实现,但即使在早期版本的 Python 中也很容易实现).

对于多处理,在一般情况下(多个读取器,多个写入器),除了放弃队列的分布式特性外,我看不到如何实现优先级队列的解决方案;指定一个特殊的辅助进程,它除了处理队列什么都不做,向它发送(本质上)RPC 以创建一个具有指定规则的队列,执行放置并获取它,获取有关它的信息,等等。因此,人们会遇到确保每个进程都知道辅助进程的位置(比如主机和端口)等的常见问题(如果进程总是在主进程启动时生成,则更容易)。一个相当大的问题,特别是如果想要以良好的性能来做到这一点,防止 aux proc 崩溃(需要将数据复制到从属进程,如果主进程崩溃,则在从属之间分布式“主选举”,等等)。从头开始做这件事听起来像是获得博士学位的工作。可能从 Johnson's 开始工作,或搭载一些非常通用的方法,如 ActiveMQ .

一些特殊情况(例如单个读取器、单个写入器)可能更容易,并且由于其有限的应用领域而变得更快;但是随后应该为该有限区域制定一个非常具体的限制规范——结果不会构成(通用的)“多处理队列”,而是仅适用于给定的一组受限要求。

关于python - 如何在 Python 中实现多处理优先级队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1354204/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com