【问题标题】:Why isn't Queue.qsize accurate?为什么 Queue.qsize 不准确?
【发布时间】:2012-12-28 03:20:59
【问题描述】:

根据Python 2.7 文档,Queue.qsize 不可靠,help(Queue.Queue.qsize) 说它不可靠。是否存在我不知道的特定实施问题?

附:我知道Queue.Queue.qsize 使用互斥体,并且Queue 的大小可能会在我调用该方法和获得结果之间发生变化,但对于单线程应用程序,Queues 是否安全?

来自help(Queue.Queue.qsize)的消息:

>>> 帮助(队列.Queue.qsize) 模块队列中方法 qsize 的帮助: qsize(self) 未绑定 Queue.Queue 方法 返回队列的大致大小(不可靠!)。 >>>

【问题讨论】:

标签: python queue


【解决方案1】:

Queue.Queue.qsize 在单线程应用程序中运行良好(甚至在多线程应用程序中用于许多应用程序)。您根本无法使用它来可靠地确定对 putget 的调用是否会阻塞。

请注意,如果您不需要并发,collections.dequeQueue.Queue 快。或者,如果性能不重要,您可以走简单的路线,只使用常规列表。

【讨论】:

  • 不确定你所说的“你不需要并发”是什么意思,关于 deque 的文档说:“Deques 支持线程安全、内存高效的追加和弹出...”。你能澄清一下吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-12
  • 2015-04-07
  • 2021-08-30
  • 2014-02-28
  • 2020-11-13
  • 2020-10-17
  • 2015-10-28
相关资源
最近更新 更多