Python队列获取大小,使用qsize()还是len()?

21

我曾看过使用qsize()len()来计算队列的大小。这两者之间有什么区别呢?


2个回答

23

对于大多数容器,你会想要使用len,但是Queue.Queue实际上并不支持len。可能是因为它太老了或者在多线程环境下获取队列长度并没有特别有用。无论如何,如果你想要(近似)获取Queue的大小,你需要使用qsize


2
len 可能会引诱人们在执行 get 操作之前检查非零长度,假设该 get 操作不会阻塞。 - dstromberg
我在调用qsize时,在Mac上遇到了崩溃的问题返回self._maxsize - self._sem._semlock._get_value() NotImplementedError有什么帮助吗? - Venu Gopal Tewari
1
为什么是近似值?如果需要精确值怎么办? - Aaron Oommen

3

queue.qsize()不会返回队列中的字节数,而是返回放置在队列中的“元素”数量。

如果您将 5 个包含 100 字节的字节数组放入队列中,则 qsize() 的值为 5,而不是 500。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接