21

I've seen instances where qsize() and len() has been used to compute the size of the queue. What is the distinction between the two?

mingxiao
  • 1,712
  • 4
  • 21
  • 33
  • Related question: [python - Why is len() not implemented for Queues? - Stack Overflow](https://stackoverflow.com/questions/47585367/why-is-len-not-implemented-for-queues) – user202729 Aug 14 '21 at 03:16

2 Answers2

23

For most containers, you'll want len, but Queue.Queue doesn't actually support len. This may be because it's old or because getting the length of a queue in a multithreaded environment isn't particularly useful. In any case, if you want the (approximate) size of a Queue, you want qsize.

user2357112
  • 260,549
  • 28
  • 431
  • 505
3

queue.qsize() doesn't return the number of bytes in the queue. It returns the number of "things" placed in the queue.

If you put 5 byte-arrays of 100 bytes in the queue, the qsize() will be 5, not 500.

Kate Orlova
  • 3,225
  • 5
  • 11
  • 35
user3145004
  • 109
  • 1
  • 11