根据Python 2.7文档,Queue.qsize
不可靠,help(Queue.Queue.qsize)
表示不可靠。是否存在我不知道的特定实现问题?
P.S。我知道Queue.Queue.qsize
使用互斥锁,Queue
的大小可能会在我调用方法和获取结果之间发生变化,但对于单线程应用程序,Queue
是help(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!). >>>
答案 0 :(得分:10)
Queue.Queue.qsize
在单线程应用程序中运行良好(甚至在多线程应用程序中也适用于其目的的许多应用程序)。您无法使用它来可靠地确定对put
或get
的调用是否会阻止。
请注意,如果您不需要并发,collections.deque
比Queue.Queue
更快。或者,如果性能不重要,您可以使用简单的路线并使用常规列表。