mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			84 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
\section{\module{Queue} ---
 | 
						|
         A synchronized queue class}
 | 
						|
 | 
						|
\declaremodule{standard}{Queue}
 | 
						|
\modulesynopsis{A synchronized queue class.}
 | 
						|
 | 
						|
 | 
						|
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 \method{get()} (or
 | 
						|
\method{get_nowait()}) is called on a \class{Queue} object which is
 | 
						|
empty or locked.
 | 
						|
\end{excdesc}
 | 
						|
 | 
						|
\begin{excdesc}{Full}
 | 
						|
Exception raised when non-blocking \method{put()} (or
 | 
						|
\method{put_nowait()}) is called on a \class{Queue} object which is
 | 
						|
full or locked.
 | 
						|
\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:
 | 
						|
 | 
						|
\begin{methoddesc}{qsize}{}
 | 
						|
Return the approximate size of the queue.  Because of multithreading
 | 
						|
semantics, this number is not reliable.
 | 
						|
\end{methoddesc}
 | 
						|
 | 
						|
\begin{methoddesc}{empty}{}
 | 
						|
Return \code{1} if the queue is empty, \code{0} otherwise.  Because
 | 
						|
of multithreading semantics, this is not reliable.
 | 
						|
\end{methoddesc}
 | 
						|
 | 
						|
\begin{methoddesc}{full}{}
 | 
						|
Return \code{1} if the queue is full, \code{0} otherwise.  Because of
 | 
						|
multithreading semantics, this is not reliable.
 | 
						|
\end{methoddesc}
 | 
						|
 | 
						|
\begin{methoddesc}{put}{item\optional{, block}}
 | 
						|
Put \var{item} into the queue.  If optional argument \var{block} is 1
 | 
						|
(the default), block if necessary until a free slot is available.
 | 
						|
Otherwise (\var{block} is 0), put \var{item} on the queue if a free
 | 
						|
slot is immediately available, else raise the \exception{Full}
 | 
						|
exception.
 | 
						|
\end{methoddesc}
 | 
						|
 | 
						|
\begin{methoddesc}{put_nowait}{item}
 | 
						|
Equivalent to \code{put(\var{item}, 0)}.
 | 
						|
\end{methoddesc}
 | 
						|
 | 
						|
\begin{methoddesc}{get}{\optional{block}}
 | 
						|
Remove and return an item from the queue.  If optional argument
 | 
						|
\var{block} is 1 (the default), block if necessary until an item is
 | 
						|
available.  Otherwise (\var{block} is 0), return an item if one is
 | 
						|
immediately available, else raise the
 | 
						|
\exception{Empty} exception.
 | 
						|
\end{methoddesc}
 | 
						|
 | 
						|
\begin{methoddesc}{get_nowait}{}
 | 
						|
Equivalent to \code{get(0)}.
 | 
						|
\end{methoddesc}
 |