## Uses of Interface
java.util.concurrent.BlockingQueue

Packages that use BlockingQueue
java.util.concurrent: Utility classes commonly useful in concurrent programming.

### Uses of BlockingQueue in java.util.concurrent

Subinterfaces of BlockingQueue in java.util.concurrent
`interface` `BlockingDeque<E>` A `Deque` that additionally supports blocking operations that wait for the deque to become non-empty when retrieving an element, and wait for space to become available in the deque when storing an element.
`interface` `TransferQueue<E>` A `BlockingQueue` in which producers may wait for consumers to receive elements.

Classes in java.util.concurrent that implement BlockingQueue
`class` `ArrayBlockingQueue<E>` A bounded blocking queue backed by an array.
`class` `DelayQueue<E extends Delayed>` An unbounded blocking queue of `Delayed` elements, in which an element can only be taken when its delay has expired.
`class` `LinkedBlockingDeque<E>` An optionally-bounded blocking deque based on linked nodes.
`class` `LinkedBlockingQueue<E>` An optionally-bounded blocking queue based on linked nodes.
`class` `LinkedTransferQueue<E>` An unbounded `TransferQueue` based on linked nodes.
`class` `PriorityBlockingQueue<E>` An unbounded blocking queue that uses the same ordering rules as class `PriorityQueue` and supplies blocking retrieval operations.
`class` `SynchronousQueue<E>` A blocking queue in which each insert operation must wait for a corresponding remove operation by another thread, and vice versa.

Methods in java.util.concurrent that return BlockingQueue
`BlockingQueue<Runnable>` ScheduledThreadPoolExecutor.`getQueue()` Returns the task queue used by this executor.
`BlockingQueue<Runnable>` ThreadPoolExecutor.`getQueue()` Returns the task queue used by this executor.

Constructors in java.util.concurrent with parameters of type BlockingQueue
Constructor and Description
`ExecutorCompletionService(Executor executor, BlockingQueue<Future<V>> completionQueue)` Creates an ExecutorCompletionService using the supplied executor for base task execution and the supplied queue as its completion queue.
`ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue)` Creates a new `ThreadPoolExecutor` with the given initial parameters and default thread factory and rejected execution handler.
`ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, RejectedExecutionHandler handler)` Creates a new `ThreadPoolExecutor` with the given initial parameters and default thread factory.
`ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory threadFactory)` Creates a new `ThreadPoolExecutor` with the given initial parameters and default rejected execution handler.
`ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory threadFactory, RejectedExecutionHandler handler)` Creates a new `ThreadPoolExecutor` with the given initial parameters.