Uses of Interface java.util.concurrent.BlockingQueue (Java SE 10 & JDK 10 )

## 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
    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 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.