# Uses of Interface
java.util.concurrent.BlockingQueue

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

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

  Subinterfaces of BlockingQueue in java.util.concurrent
  Modifier and Type
  Interface
  Description
  `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
  Modifier and Type
  Class
  Description
  `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
  Modifier and Type
  Method
  Description
  `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
  Modifier
  Constructor
  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, the default thread factory and the default 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 the 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 the 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.