为什么Queue.qsize不准确?

时间:2013-01-14 05:48:06

标签: python queue

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

P.S。我知道Queue.Queue.qsize使用互斥锁,Queue的大小可能会在我调用方法和获取结果之间发生变化,但对于单线程应用程序,Queuehelp(Queue.Queue.qsize)安全吗?

来自{{1}}的消息:

>>> help(Queue.Queue.qsize)
Help on method qsize in module Queue:

qsize(self) unbound Queue.Queue method
    Return the approximate size of the queue (not reliable!).

>>> 

1 个答案:

答案 0 :(得分:10)

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

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