code: public static boolean gracefulShutdown(@Nullable ExecutorService threadPool, int shutdownTimeoutMills) {
  		return threadPool == null
  				|| MoreExecutors.shutdownAndAwaitTermination(threadPool, shutdownTimeoutMills, TimeUnit.MILLISECONDS);
  	}
docs: 按照ExecutorService JavaDoc示例代码编写的Graceful Shutdown方法.
  
  先使用shutdown, 停止接收新任务并尝试完成所有已存在任务.
  
  如果1/2超时时间后, 则调用shutdownNow,取消在workQueue中Pending的任务,并中断所有阻塞函数.
  
  如果1/2超时仍然超時，則強制退出.
  
  另对在shutdown时线程本身被调用中断做了处理.
  
  返回线程最后是否被中断.
  
  使用了Guava的工具类
  @see MoreExecutors#shutdownAndAwaitTermination(ExecutorService, long, TimeUnit)