python - 为什么 Queue.qsize 不准确?

标签 python queue

根据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 在单线程应用程序中工作良好(甚至在多线程应用程序中也适用于其目的的许多应用程序)。您根本无法使用它来可靠地确定对 putget 的调用是否会阻塞。

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

关于python - 为什么 Queue.qsize 不准确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14313814/

相关文章:

Python asyncio 任务排序

java - 如何在出队中查找并返回对象?

c++ - "deque.h"中的 android-ndk-r7c 不合格 id 错误

python - 使用完整的 url 找不到 Django 页面

python - Pandas 使用多索引列取消堆叠

python - 如何在 Keras 中使用多 GPU 和共享权重应用程序模型

python boto3 写入 S3 导致空文件

python - 在 Python 中导入时 Matplotlib 未被识别为模块

python - Celery 中如何执行 rate_limit?

swift - 在 Swift 中,为什么以全局队列为目标的自定义串行队列不能同时执行?