public void shutdown(){
  final long begin=System.currentTimeMillis();
  log.info("ThreadPoolManager: Shutting down.");
  log.info("\t... executing " + getTaskCount(scheduledPool) + " scheduled tasks.");
  log.info("\t... executing " + getTaskCount(instantPool) + " instant tasks.");
  log.info("\t... executing " + getTaskCount(longRunningPool) + " long running tasks.");
  log.info("\t... " + (workStealingPool.getQueuedTaskCount() + workStealingPool.getQueuedSubmissionCount()) + " forking tasks left.");
  scheduledPool.shutdown();
  instantPool.shutdown();
  longRunningPool.shutdown();
  workStealingPool.shutdown();
  boolean success=false;
  try {
    success|=awaitTermination(5000);
    scheduledPool.setExecuteExistingDelayedTasksAfterShutdownPolicy(false);
    scheduledPool.setContinueExistingPeriodicTasksAfterShutdownPolicy(false);
    success|=awaitTermination(10000);
  }
 catch (  InterruptedException e) {
    e.printStackTrace();
  }
  log.info("\t... success: " + success + " in "+ (System.currentTimeMillis() - begin)+ " msec.");
  log.info("\t... " + getTaskCount(scheduledPool) + " scheduled tasks left.");
  log.info("\t... " + getTaskCount(instantPool) + " instant tasks left.");
  log.info("\t... " + getTaskCount(longRunningPool) + " long running tasks left.");
  log.info("\t... " + (workStealingPool.getQueuedTaskCount() + workStealingPool.getQueuedSubmissionCount()) + " forking tasks left.");
  workStealingPool.shutdownNow();
}

public void shutdown ( ) { final long begin = System . currentTimeMillis ( ) ; log . info ( "ThreadPoolManager: Shutting down." ) ; log . info ( "\t... executing " + getTaskCount ( scheduledPool ) + " scheduled tasks." ) ; log . info ( "\t... executing " + getTaskCount ( instantPool ) + " instant tasks." ) ; log . info ( "\t... executing " + getTaskCount ( longRunningPool ) + " long running tasks." ) ; log . info ( "\t... " + ( workStealingPool . getQueuedTaskCount ( ) + workStealingPool . getQueuedSubmissionCount ( ) ) + " forking tasks left." ) ; scheduledPool . shutdown ( ) ; instantPool . shutdown ( ) ; longRunningPool . shutdown ( ) ; workStealingPool . shutdown ( ) ; boolean success = false ; try { success |= awaitTermination ( 5000 ) ; scheduledPool . setExecuteExistingDelayedTasksAfterShutdownPolicy ( false ) ; scheduledPool . setContinueExistingPeriodicTasksAfterShutdownPolicy ( false ) ; success |= awaitTermination ( 10000 ) ; } catch ( InterruptedException e ) { e . printStackTrace ( ) ; } log . info ( "\t... success: " + success + " in " + ( System . currentTimeMillis ( ) - begin ) + " msec." ) ; log . info ( "\t... " + getTaskCount ( scheduledPool ) + " scheduled tasks left." ) ; log . info ( "\t... " + getTaskCount ( instantPool ) + " instant tasks left." ) ; log . info ( "\t... " + getTaskCount ( longRunningPool ) + " long running tasks left." ) ; log . info ( "\t... " + ( workStealingPool . getQueuedTaskCount ( ) + workStealingPool . getQueuedSubmissionCount ( ) ) + " forking tasks left." ) ; workStealingPool . shutdownNow ( ) ; }
shutdown all thread pools .
