code: @Override
    public void shutdown() {
  
      synchronized (nextRunnableLock) {
        isShutdown = true;
  
        if (workers == null) {
          return;
        }
  
        // signal each worker thread to shut down
        Iterator<WorkerThread> workerThreads = workers.iterator();
        while (workerThreads.hasNext()) {
          WorkerThread wt = workerThreads.next();
          JobRunShell jobRunShell = wt.getRunnable();
          if (jobRunShell != null) {
            log.info("Waiting for Job to shutdown: {}", wt.getRunnable().getJobName());
          }
          wt.shutdown();
  
          availWorkers.remove(wt);
        }
  
        // Active worker threads will shut down after finishing their
        // current job.
        nextRunnableLock.notifyAll();
      }
    }
docs: Terminate any worker threads in this thread group.
  
  <p>Jobs currently in progress will complete.