code: public void launch() throws Exception {
          if (init.get())
              return;
          // Register a SIGINT handler for graceful shutdown.
          if (!init.get())
              init();
  
          log.info("Subscribing to " + channel + " on stream Id " + streamId);
  
          // Register a SIGINT handler for graceful shutdown.
          SigInt.register(() -> running.set(false));
  
          // Create an Aeron instance with client-provided context configuration, connect to the
          // media driver, and add a subscription for the given channel and stream using the supplied
          // dataHandler method, which will be called with new messages as they are received.
          // The Aeron and Subscription classes implement AutoCloseable, and will automatically
          // clean up resources when this try block is finished.
          //Note here that we are either creating 1 or 2 subscriptions.
          //The first one is a  normal 1 subscription listener.
          //The second one is when we want to send responses
          boolean started = false;
          int numTries = 0;
          while (!started && numTries < 3) {
              try {
                  try (final Subscription subscription = aeron.addSubscription(channel, streamId)) {
                      log.info("Beginning subscribe on channel " + channel + " and stream " + streamId);
                      AeronUtil.subscriberLoop(new FragmentAssembler(NDArrayResponseFragmentHandler.builder().aeron(aeron)
                                      .context(ctx).streamId(responseStreamId).holder(ndArrayHolder).build()),
                                      fragmentLimitCount, running, launched).accept(subscription);
                      started = true;
                  }
  
  
              } catch (Exception e) {
                  numTries++;
                  log.warn("Failed to connect..trying again", e);
              }
          }
  
          if (numTries >= 3)
              throw new IllegalStateException("Was unable to start responder after " + numTries + "tries");
  
  
      }
docs: Launch a background thread
  that subscribes to  the aeron context
  @throws Exception