mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 03:44:55 +00:00 
			
		
		
		
	Correct misuse of indexsubutem.
Describe the Queue class using {classdesc}{Queue}, not {funcdesc}{__init__}.
		
	
			
		
			
				
	
	
		
			70 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
\section{Standard Module \sectcode{Queue}}
 | 
						|
\stmodindex{Queue}
 | 
						|
\label{module-Queue}
 | 
						|
 | 
						|
 | 
						|
The \module{Queue} module implements a multi-producer, multi-consumer
 | 
						|
FIFO queue.  It is especially useful in threads programming when
 | 
						|
information must be exchanged safely between multiple threads.  The
 | 
						|
\class{Queue} class in this module implements all the required locking
 | 
						|
semantics.  It depends on the availability of thread support in
 | 
						|
Python.
 | 
						|
 | 
						|
The \module{Queue} module defines the following class and exception:
 | 
						|
 | 
						|
 | 
						|
\begin{classdesc}{Queue}{maxsize}
 | 
						|
Constructor for the class.  \var{maxsize} is an integer that sets the
 | 
						|
upperbound limit on the number of items that can be placed in the
 | 
						|
queue.  Insertion will block once this size has been reached, until
 | 
						|
queue items are consumed.  If \var{maxsize} is less than or equal to
 | 
						|
zero, the queue size is infinite.
 | 
						|
\end{classdesc}
 | 
						|
 | 
						|
\begin{excdesc}{Empty}
 | 
						|
Exception raised when non-blocking get (e.g. \method{get_nowait()}) is
 | 
						|
called on a \class{Queue} object which is empty, or for which the
 | 
						|
emptyiness cannot be determined (i.e. because the appropriate locks
 | 
						|
cannot be acquired).
 | 
						|
\end{excdesc}
 | 
						|
 | 
						|
\subsection{Queue Objects}
 | 
						|
\label{QueueObjects}
 | 
						|
 | 
						|
Class \class{Queue} implements queue objects and has the methods
 | 
						|
described below.  This class can be derived from in order to implement
 | 
						|
other queue organizations (e.g. stack) but the inheritable interface
 | 
						|
is not described here.  See the source code for details.  The public
 | 
						|
methods are:
 | 
						|
 | 
						|
\setindexsubitem{(Queue method)}
 | 
						|
 | 
						|
\begin{funcdesc}{qsize}{}
 | 
						|
Returns the approximate size of the queue.  Because of multithreading
 | 
						|
semantics, this number is not reliable.
 | 
						|
\end{funcdesc}
 | 
						|
 | 
						|
\begin{funcdesc}{empty}{}
 | 
						|
Returns \code{1} if the queue is empty, \code{0} otherwise.  Because
 | 
						|
of multithreading semantics, this is not reliable.
 | 
						|
\end{funcdesc}
 | 
						|
 | 
						|
\begin{funcdesc}{full}{}
 | 
						|
Returns \code{1} if the queue is full, \code{0} otherwise.  Because of
 | 
						|
multithreading semantics, this is not reliable.
 | 
						|
\end{funcdesc}
 | 
						|
 | 
						|
\begin{funcdesc}{put}{item}
 | 
						|
Puts \var{item} into the queue.
 | 
						|
\end{funcdesc}
 | 
						|
 | 
						|
\begin{funcdesc}{get}{}
 | 
						|
Gets and returns an item from the queue, blocking if necessary until
 | 
						|
one is available.
 | 
						|
\end{funcdesc}
 | 
						|
 | 
						|
\begin{funcdesc}{get_nowait}{}
 | 
						|
Gets and returns an item from the queue if one is immediately
 | 
						|
available.  Raises an \exception{Empty} exception if the queue is
 | 
						|
empty or if the queue's emptiness cannot be determined.
 | 
						|
\end{funcdesc}
 |