java.util.concurrent · java.base · since Java 1.5

LinkedBlockingQueue

declaration
public class LinkedBlockingQueue<E> extends AbstractQueue<E>
        implements BlockingQueue<E>, Serializable

Linked BlockingQueue, optionally bounded (unbounded by default — beware), with separate head/tail locks for higher producer/consumer throughput.