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

With Java 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 B004V9OA84kindle
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 American flag
American flag download O’Reilly Safari download Sony e-books American flag
Kobo UN flag
Greyed out stores probably do not have the item in stock
book cover recommend book⇒Concurrent Programming in Java(TM): Design Principles and Patterns, third edition
by:Douglas Lea 978-0-321-25617-1paperback
publisher:Addison-Wesley
published:2006-05-19
Threads and concurrency in Java, design considerations (safety, liveness, and performance), Before/After Patterns, layering, adapters, immutability and synchronization, deadlock, resource ordering, the Java Memory Model and concurrency, using the java.concurrency package, confinement, refactoring for concurrency, mutexes, read-write locks, recovering from failure, notifications, semaphores, latches, exchanges, transactions, one-way messages, worker threads, polling and event-driven I/O, parallelism techniques (fork/join, computation trees, and barriers), Communicating Sequential Processes (CSP).
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 American flag
American flag O’Reilly Safari Sony e-books American flag
Kobo UN 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
logo
Please email your , 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, your name or email kept confidential, not considered for public posting, please explicitly specify that. Unless you state otherwise, I will treat your message as a letter to the editor that I may or may not publish in the feedback section. After that, it will be too late to retract it. If you disagree with something I said, please quote it and cite the web page where you found it, tell me why you think it is wrong, and, if possible, provide some supporting evidence. Threatening to kill me or spouting obscenities has yet to persuade me to change my mind.
mindprod.com IP:[65.110.21.43]
view BlogYour face IP:[38.107.179.210]
You are visitor number 27,907.