Provides a multi-producer, multi-consumer FIFO queue object
Can be used to safely exchange data between multiple threads
q = Queue(maxsize) # Create a queue
q.qsize() # Return current size
q.empty() # Test if empty
q.full() # Test if full
q.put(item) # Put an item on the queue
q.get() # Get item from queue
Notes:
The Queue object also supports non-blocking put/get.
q.put_nowait(item)
q.get_nowait()
These raise the Queue.Full or Queue.Empty exceptions if an error occurs.
Return values for qsize(), empty(), and full() are approximate.