@Override
    public ReceiveQueue<T> receiveQueue() {
        if (debug) logger.debug("ReceiveQueue requested for {}", name);
        return new BasicReceiveQueue<>(queue, pollTimeWait, pollTimeTimeUnit, limit);
    }
@Override
    public ReceiveQueue<T> receiveQueue() {
        if (debug) logger.debug("ReceiveQueue requested for {}", name);
        return new BasicReceiveQueue<>(queue, pollTimeWait, pollTimeTimeUnit, limit);
    }
@ Override public ReceiveQueue < T > receiveQueue ( ) { if ( debug ) logger . debug ( "ReceiveQueue requested for {}" , name ) ; return new BasicReceiveQueue <> ( queue , pollTimeWait , pollTimeTimeUnit , limit ) ; }
This returns a new instance of ReceiveQueue every time you call it
so call it only once per thread.

@return received queue
This returns a new instance of ReceiveQueue every time you call it so call it only once per thread .