docs: public static ExecutorService newCachedThreadPool() {
      ThreadPoolExecutor executor =  new ThreadPoolExecutor(
          CORE_POOL_SIZE,
          MAX_POOL_SIZE,
          KEEP_ALIVE_TIME, TimeUnit.SECONDS,
          new LinkedBlockingQueue<Runnable>());
  
      allowCoreThreadTimeout(executor, true);
  
      return executor;
    }