queue : Java Glossary

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 (Central Processing Unit) 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

WithJava version 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 a 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

Books

book cover recommend book⇒Java Concurrency in Practice
by:Brian Goetz, Tim Peierls, Joshua J. Bloch, Joseph Bowbeer, David Holmes, Doug Lea 978-0-321-34960-6paperback
publisher:Addison-Wesley B000RH0EPCkindle
published:2006-05-19
Bloch and Lea especially have very good reputations in concurrent programming. This is the dream team to write such a book.
Australian flag abe books anz abe books.co.uk UK flag
German flag abe books.de amazon.co.uk UK flag
German flag amazon.de abe books.ca Canadian flag
Spanish flag iberlibro.com amazon.ca Canadian flag
Spanish flag amazon.es Chapters Indigo Canadian flag
French flag abe books.fr abe books.com American flag
French flag amazon.fr amazon.com American flag
Italian flag abe books.it Barnes & Noble American flag
Italian flag amazon.it powells.com American flag
American flag download o’reilly safari download sony e-books American flag
Greyed out stores probably do not have the item in stock
book cover recommend book⇒Concurrent Programming in Java : Design Principles and Patterns, Second Edition
by:Doug Lea 978-0-201-31009-2paperback
publisher:Prentice Hall
published:1999-01-04
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.
Australian flag abe books anz abe books.co.uk UK flag
German flag abe books.de amazon.co.uk UK flag
German flag amazon.de abe books.ca Canadian flag
Spanish flag iberlibro.com amazon.ca Canadian flag
Spanish flag amazon.es Chapters Indigo Canadian flag
French flag abe books.fr abe books.com American flag
French flag amazon.fr amazon.com American flag
Italian flag abe books.it Barnes & Noble American flag
Italian flag amazon.it powells.com American flag
American flag download o’reilly safari sony e-books American flag
Greyed out stores probably do not have the item in stock

Learning More

Oracle’s Javadoc on Queue interface : available:
Oracle’s Javadoc on java.util.concurrent package : available:
Oracle’s Javadoc on ThreadPoolExecutor class : available:
Oracle’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
logofeedback Please email your feedback for publication, letters to the editor, errors, omissions, typos, formatting errors, ambiguities, unclear wording, broken/redirected link reports, suggestions to improve this page or comments to Roedy Green : feedback email If you want your message kept confidential, not considered for posting, please explicitly specify that.
mindprod.com IP:[65.110.21.43]
view BlogYour face IP:[38.107.179.212]
You are visitor number 27,322.