Thread-safe queue backed by an array

Java provides a thread-safe queue (First In First Out (FIFO)) backed by an array via ArrayBlockingQueue. The following table lists the single-thread and multithreaded Java built-in queues backed by an array:

Single thread

Multithreaded

ArrayDeque

PriorityQueue (sorted retrievals)

ArrayBlockingQueue (bounded)

ConcurrentLinkedQueue (unbounded)

ConcurrentLinkedDeque (unbounded)

LinkedBlockingQueue (optionally bounded)

LinkedBlockingDeque (optionally bounded)

LinkedTransferQueue

PriorityBlockingQueue

SynchronousQueue

DelayQueue

Stack

 

The capacity of ArrayBlockingQueue cannot be changed following creation. Attempts to put an element into a full queue will result in the operation blocking; attempts to take an element from an empty queue will similarly block.

Creating ArrayBlockingQueue can easily be done as follows:

BlockingQueue<Integer> queue = new ArrayBlockingQueue<>(QUEUE_MAX_SIZE);
Java also comes with two thread-safe, optionally bounded blocking queues based on linked nodes via LinkedBlockingQueue and LinkedBlockingDeque (a deque is a linear collection that supports element insertion and removal at both ends).
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.219.220.22