mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 21:51:50 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			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}
 | 
