@Override
  public void shutdown() {
    for (int i = 0; i < executors.length; i++) {
      executors[i].shutdown();
    }
  }
Constructs an instance of a KeyBasedExecutorService that manages the underlying threads

@param threadPoolNamePrefix String identifier for this ExecutorService. It forms the prefix for each of the
                            underlying thread pool executors
@param numThreads Total number of threads required, mainly dependent on the key set size and the degree of
                  parallelism. Highest level of parallelism can be achieved by setting the
                  number of threads = key set size.
@throws IllegalArgumentException if numThreads {@literal <}= 0
samza-core/src/main/java/org/apache/samza/executors/KeyBasedExecutorService.java