src/main/java/io/reactivex/internal/util/QueueDrainHelper.java
public static <T> SimpleQueue<T> createQueue(int capacityHint) {
        if (capacityHint < 0) {
            return new SpscLinkedArrayQueue<T>(-capacityHint);
        }
        return new SpscArrayQueue<T>(capacityHint);
    }
public static <T> SimpleQueue<T> createQueue(int capacityHint) {
        if (capacityHint < 0) {
            return new SpscLinkedArrayQueue<T>(-capacityHint);
        }
        return new SpscArrayQueue<T>(capacityHint);
    }
Creates a queue: spsc-array if capacityHint is positive and
spsc-linked-array if capacityHint is negative; in both cases, the
capacity is the absolute value of prefetch.
@param <T> the value type of the queue
@param capacityHint the capacity hint, negative value will create an array-based SPSC queue
@return the queue instance