5

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

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

来自help(Queue.Queue.qsize)

>>> 帮助(队列.Queue.qsize)
模块队列中方法 qsize 的帮助:

qsize(self) 未绑定 Queue.Queue 方法
    返回队列的大致大小(不可靠!)。

>>>
4

1 回答 1

10

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

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

于 2013-01-14T05:55:28.210 回答