首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >queue.queue()设置大小的最佳实践?

queue.queue()设置大小的最佳实践?
EN

Stack Overflow用户
提问于 2016-09-25 00:11:31
回答 1查看 829关注 0票数 0

所以我有Queue.Queue()

我有一群生产者将作业放到Queue.Queue()中,还有一群消费者从队列中弹出

1)限制队列大小与不设置队列大小是否有好处?

2)不封顶大小,真的没有大小限制吗?可以永远增长吗?

我注意到,当队列大小固定时,死锁似乎更容易发生

EN

回答 1

Stack Overflow用户

发布于 2016-09-25 00:28:10

如果不设置大小上限,Queue可能会一直增长,直到内存耗尽。所以Python没有施加大小限制,但是您的机器仍然具有有限的资源。

在一些应用程序中(可能大多数),程序员知道内存消耗不会成为问题,因为它们的应用程序具有特定的特性。

但是,例如,如果你有“永远运行”的生产者,而消费者的运行速度比生产者慢得多,那么限制大小对于避免无限的内存需求至关重要。

至于死锁,不管Queue的大小是否有界,Queue的实现都不太可能导致死锁;死锁更有可能是由于应用程序代码中的缺陷造成的。例如,想象一个生产者通过网络获取东西,并在网络连接中断时错误地抑制错误。然后生产者可能无法产生任何新的项,因此消费者最终将永远阻塞,等待新的东西出现在Queue上。这看起来像是死锁,但原因实际上与Queue无关。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39678374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档