@Override
    void launchIfNeeded() {
      if (isShutdown()) {
        synchronized (this) {
          if (isShutdown()) {
            LOGGER.info("Launching {} with core pool size {}...", this.name, this.corePoolSize);

            this.executor =
                Executors.newScheduledThreadPool(
                    this.corePoolSize,
                    r -> {
                      final Thread t =
                          new Thread(Thread.currentThread().getThreadGroup(), r, this.name, 0);
                      if (!t.isDaemon()) {
                        t.setDaemon(true);
                      }
                      if (t.getPriority() != Thread.NORM_PRIORITY) {
                        t.setPriority(Thread.NORM_PRIORITY);
                      }
                      return t;
                    });
          }
        }
      }
    }
Downstream Data Flow Executor: execute poll task
iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/consumer/base/SubscriptionExecutorServiceManager.java