为什么Queue.qsize不准确?

Sna*_*fee 5 python queue

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

PS我知道Queue.Queue.qsize使用互斥锁,并且Queue当我调用方法和获得结果时,大小可能会发生变化,但对于单线程应用程序,是否Queue安全?

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

>>> 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!).

>>> 

Tay*_*mon 10

Queue.Queue.qsize在单线程应用程序中工作正常(甚至在用于其目的的许多应用程序的多线程应用程序中).你根本无法用它来可靠地确定呼叫是否putget将阻塞.

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