java.util.concurrent · java.base · since Java 1.5
LinkedBlockingQueue
public class LinkedBlockingQueue<E> extends AbstractQueue<E>
implements BlockingQueue<E>, SerializableLinked BlockingQueue, optionally bounded (unbounded by default — beware), with separate head/tail locks for higher producer/consumer throughput.