mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 11:49:12 +00:00 
			
		
		
		
	Makefile: Add dependency on libqueue.tex lib.tex: Place the libqueue.tex documentation just after libthread.tex since Queue depends on thread support in Python.
		
			
				
	
	
		
			88 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
\section{Standard module \sectcode{Queue}}
 | 
						|
\stmodindex{Queue}
 | 
						|
 | 
						|
\label{module-Queue}
 | 
						|
 | 
						|
% ==== 2. ====
 | 
						|
% Give a short overview of what the module does.
 | 
						|
% If it is platform specific, mention this.
 | 
						|
% Mention other important restrictions or general operating principles.
 | 
						|
% For example:
 | 
						|
 | 
						|
The \code{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
 | 
						|
\code{Queue} class in this module implements all the required locking
 | 
						|
semantics.  It depends on the availability of thread support in
 | 
						|
Python.
 | 
						|
 | 
						|
The \code{Queue} module defines the following exception:
 | 
						|
 | 
						|
\renewcommand{\indexsubitem}{(in module Queue)}
 | 
						|
 | 
						|
\begin{excdesc}{Empty}
 | 
						|
Exception raised when non-blocking get (e.g. \code{get_nowait()}) is
 | 
						|
called on a 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}
 | 
						|
 | 
						|
Class \code{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
 | 
						|
interface methods are:
 | 
						|
 | 
						|
\renewcommand{\indexsubitem}{(__init__ method)}
 | 
						|
 | 
						|
\begin{funcdesc}{__init__}{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{funcdesc}
 | 
						|
 | 
						|
\renewcommand{\indexsubitem}{(qsize method)}
 | 
						|
 | 
						|
\begin{funcdesc}{qsize}{}
 | 
						|
Returns the approximate size of the queue.  Because of multithreading
 | 
						|
semantics, this number is not reliable.
 | 
						|
\end{funcdesc}
 | 
						|
 | 
						|
\renewcommand{\indexsubitem}{(empty method)}
 | 
						|
 | 
						|
\begin{funcdesc}{empty}{}
 | 
						|
Returns 1 if the queue is empty, 0 otherwise.  Because of
 | 
						|
multithreading semantics, this is not reliable.
 | 
						|
\end{funcdesc}
 | 
						|
 | 
						|
\renewcommand{\indexsubitem}{(full method)}
 | 
						|
 | 
						|
\begin{funcdesc}{full}{}
 | 
						|
Returns 1 if the queue is full, 0 otherwise.  Because of
 | 
						|
multithreading semantics, this is not reliable.
 | 
						|
\end{funcdesc}
 | 
						|
 | 
						|
\renewcommand{\indexsubitem}{(put method)}
 | 
						|
 | 
						|
\begin{funcdesc}{put}{item}
 | 
						|
Puts \var{item} into the queue.
 | 
						|
\end{funcdesc}
 | 
						|
 | 
						|
\renewcommand{\indexsubitem}{(get method)}
 | 
						|
 | 
						|
\begin{funcdesc}{get}{}
 | 
						|
Gets and returns an item from the queue, blocking if necessary until
 | 
						|
one is available.
 | 
						|
\end{funcdesc}
 | 
						|
 | 
						|
\renewcommand{\indexsubitem}{(get_nowait method)}
 | 
						|
 | 
						|
\begin{funcdesc}{get_nowait}{}
 | 
						|
Gets and returns an item from the queue if one is immediately
 | 
						|
available.  Raises an \code{Empty} exception if the queue is empty or
 | 
						|
if the queue's emptiness cannot be determined.
 | 
						|
\end{funcdesc}
 |