queue : Java Glossary

go to home page Q words local find full screen, hide local find menu Google search web for more information on this topic jump to foot of page translate this page with Babelfish punctuation 0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z (all) ©1996-2009 2008-03-01 Roedy Green, Canadian Mind Products
queue
A data structure to hold objects awaiting some sort of service. There are two basic types: FIFO (First In First Out) and LIFO (Last In First Out). LIFO queues are often called stacks. Internally threads waiting for a timeslice of CPU time are stored in a queue. Inside a servlet womb, incoming translations awaiting processing are stored in a queue. Prior to Java 1.5, there was almost no support for queues other than LinkedList. You had to roll your own, which is not difficult. See my own LinkedList implementation.
Queue Classes Learning More
How to Use Links
Books

Queue Classes

With Java 1.5 comes a rich set of classes:
Java Queues classes and interfaces
Class Type Purpose
Queue interface Basic queue interface. Defines the basic methods to add elements to the queue (offer, add), look at the head of the queue (peek, element) or pop the head of the queue off the queue (poll, remove). There are two versions of each method, e.g. offer returns a magic value on trouble, and add throws an Exception. Queue is derived from Collection so all the Collection methods are also available.
BlockingQueue interface If the queue is empty, blocks the current thread until some other thread adds an element. You can provide a timeout how long you are prepared to wait.
AbstractQueue abstract class Underpinnings for ArrayBlockingQueue, ConcurrentLinkedQueue, DelayQueue, LinkedBlockingQueue, PriorityBlockingQueue, PriorityQueue, SynchronousQueue.
ArrayBlockingQueue class FIFO blocking queue where the elements are stored in an fixed size array. The array buffer is circular, somtimes called a squirrel cage buffer or hamster buffer. When the array fills up it wraps around to the beginning being careful not to overwrite existing elements. If all goes well, the oldest elements are popped off in time to create room for new elements, hot on their heels.
ConcurrentLinkedQueue class Unbounded (can grow arbitrarily large), FIFO, thread-safe queue.
DelayQueue class Unbounded, sorted by delay, so that elements can be eligible to leave the queue once the delay has expired. The oldest expired delay element pops from the queue first.
Executors class creates thread pools that work off a todo queue.
LinkedBlockingQueue class Optionally bounded, FIFO blocking queue implemented with linked nodes.
LinkedList class Supports List interface, though it is very slow at indexing since it is implemented as linked nodes.
PriorityBlockingQueue class Blocking, sorted queue ordered by natural order Comparable interface or supplied Comparator. Does not permit null elements. Pops the smallest element.
PriorityQueue class Non-blocking, sorted queue ordered by natural order Comparable interface or supplied Comparator. Does not permit null elements. Pops the smallest element.
SynchronousQueue class A dummy queue that can’t even hold one element. Every add to the queue must be matched by an immediate pop before there can be another add. It is for thread to thread handoff.
ThreadPoolExecutor class executes each submitted task using one of possibly several pooled threads.

How to Use

There are many variations, but this should give you the general idea.

Books

book cover recommend book⇒Java Concurrency in Practice
 paperbackkindle
ISBN13:978-0-321-34960-6impressioncounterB000RH0EPCclickcounter
publisher:Addison-Wesley
published:2006-05-19
by:Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, Doug Lea
Bloch and Lea especially have very good reputations in concurrent programming. This is the dream team to write such a book. See the companion website with code examples, a sample chapter, errata etc..
UK flag abe books.co.uk abe books.ca Canadian flag
UK flag amazon.co.uk. amazon.ca. Canadian flag
German flag abe books.de chapters.indigo.ca. Canadian flag
German flag amazon.de. abe books.com American flag
French flag abe books.fr amazon.com. American flag
French flag amazon.fr. barnes and noble.com American flag
Italian flag abe books.it powells.com American flag
Spanish flag iberlibro.com sony e-books American flag
Australian flag abe books anz

book cover recommend book⇒Concurrent Programming in Java : Design Principles and Patterns, Second Edition
 paperback
ISBN13:978-0-201-31009-2impressioncounter
publisher:Prentice Hall
published:1999-01-04
by:Doug Lea
432 pages. You can read it online. This is the book on Threads and concurrent programming. The only problem with it is does not cover the new java.util.concurrent package which the author helped design.
UK flag abe books.co.uk abe books.ca Canadian flag
UK flag amazon.co.uk. amazon.ca. Canadian flag
German flag abe books.de chapters.indigo.ca. Canadian flag
German flag amazon.de. abe books.com American flag
French flag abe books.fr amazon.com. American flag
French flag amazon.fr. barnes and noble.com American flag
Italian flag abe books.it powells.com American flag
Spanish flag iberlibro.com sony e-books American flag
Australian flag abe books anz

Learning More

Sun’s Javadoc on Queue interface : available:
Sun’s Javadoc on java.util.concurrent package : available:
Sun’s Javadoc on ThreadPoolExecutor class : available:
Sun’s Javadoc on Executors class : available:

CMP homejump to top You can get the freshest copy of this page from: or possibly from your local J: drive (Java virtual drive/mindprod.com website mirror)
http://mindprod.com/jgloss/queue.html J:\mindprod\jgloss\queue.html
CMP logofeedback Please email your feedback for publication, errors, omissions, typos, formatting errors, ambiguities, unclear wording, broken/redirected link reports, suggestions to improve this page or comments to Roedy Green : feedback email
mindprod.com IP:[65.110.21.43]
view BlogYour face IP:[38.107.191.105]
You are visitor number 20,530.