public static <E> BlockingQueue<E> newBlockingQueue(ConcurrentQueueSpec qs) {
        Class takeStratClass = (qs.consumers == 1) ? ScParkTakeStrategy.class : McParkTakeStrategy.class;
        Class putStratClass = YieldPutStrategy.class;

        return newBlockingQueue(qs, takeStratClass, putStratClass);
    }
The queue factory produces {@link java.util.Queue} instances based on a best fit to the {@link ConcurrentQueueSpec}.
This allows minimal dependencies between user code and the queue implementations and gives users a way to express
their requirements on a higher level.

@author nitsanw
jctools-experimental/src/main/java/org/jctools/queues/blocking/BlockingQueueFactory.java