code: public static ScalingThreadPoolExecutor newScalingThreadPool(int min, int max, long keepAliveTime) {
      return newScalingThreadPool(min, max, keepAliveTime, Executors.defaultThreadFactory());
    }
docs: Creates a {@link ScalingThreadPoolExecutor}.
  @param min Core thread pool size.
  @param max Max number of threads allowed.
  @param keepAliveTime Keep alive time for unused threads in milliseconds.
  @return A {@link ScalingThreadPoolExecutor}.