code: public static <V> QueueingStrategy<V> newHeapQueueingStrategy(double percentOfHeapBeforeFlowControl,
                                                                    long maxDelay,
                                                                    long dequeueHint) {
          return new HeapQueueingStrategy<V>(percentOfHeapBeforeFlowControl, maxDelay, dequeueHint);
      }
docs: Construct a new {@link HeapQueueingStrategy} with the given parameters.
  
  For example, (0.85, 5000, 10000) translates to when 85% of heap is in
  use, start exponentially delaying additional enqueues up to a max of
  5000 ms, garbage collecting after every 10000 dequeues to ensure that
  
  @param percentOfHeapBeforeFlowControl the percentage of the heap that must be available before the
  queue begins to start delaying addition operations
  @param maxDelay                       the maximum amount of time to delay an addition operation in
  milliseconds
  @param dequeueHint                    after this many dequeue operations, signal the JVM to run a
  garbage collection