code: protected Queue<IQueueMessage<ID, DATA>> createQueue(int boundary) {
          if (boundary > 0) {
              if (boundary > 1024) {
                  return new LinkedBlockingQueue<>(boundary);
              } else {
                  return new ArrayBlockingQueue<>(boundary);
              }
          } else {
              return new ConcurrentLinkedQueue<>();
          }
      }
docs: This method will create a {@link Queue} instance with the following
  rules:
  
  <ul>
  <li>If {@link #boundary} is set and larger than {@code 1024}, a
  {@link LinkedBlockingQueue} is created; if {@link #boundary} is less than
  or equals to {@code 1024}, an {@link ArrayBlockingQueue} is created
  instead.</li>
  <li>Otherwise, a {@link ConcurrentLinkedQueue} is created.</li>
  </ul>
  
  @param boundary
  @return