根据Python 2.7文档,Queue.qsize
不可靠,help(Queue.Queue.qsize)
说它不可靠。是否存在我不知道的特定实现问题?
附言我知道 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!). >>>
最佳答案
Queue.Queue.qsize
在单线程应用程序中工作良好(甚至在多线程应用程序中也适用于其目的的许多应用程序)。您根本无法使用它来可靠地确定对 put
或 get
的调用是否会阻塞。
注意如果不需要并发,collections.deque
比 Queue.Queue
更快。或者,如果性能不是关键,您可以走简单的路线,只使用常规列表。
关于python - 为什么 Queue.qsize 不准确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14313814/