default void subscribe(Subscriber<? super T> subscriber, EventExecutor executor) {
        subscribe(subscriber, executor, EMPTY_OPTIONS);
    }
Requests to start streaming data to the specified {@link Subscriber}. If there is a problem subscribing,
{@link Subscriber#onError(Throwable)} will be invoked with one of the following exceptions:
<ul>
  <li>{@link IllegalStateException} if other {@link Subscriber} subscribed to this stream already.</li>
  <li>{@link AbortedStreamException} if this stream has been {@linkplain #abort() aborted}.</li>
  <li>{@link CancelledSubscriptionException} if this stream has been
      {@linkplain Subscription#cancel() cancelled} and {@link SubscriptionOption#NOTIFY_CANCELLATION} is
      specified when subscribed.</li>
  <li>Other exceptions that occurred due to an error while retrieving the elements.</li>
</ul>

@param executor the executor to subscribe
core/src/main/java/com/linecorp/armeria/common/stream/StreamMessage.java