code: public BatchFraction threadPool(final String name, final int maxThreads, final int keepAliveTime, final TimeUnit keepAliveUnits) {
          final ThreadPool<?> threadPool = new ThreadPool<>(name);
          threadPool.maxThreads(maxThreads)
                  .keepaliveTime("time", Integer.toBinaryString(keepAliveTime))
                  .keepaliveTime("unit", keepAliveUnits.name().toLowerCase(Locale.ROOT));
          return threadPool(threadPool);
      }
docs: Creates a new thread-pool that can be used for batch jobs.
  
  @param name           the maximum number of threads to set the pool to
  @param keepAliveTime  the time to keep threads alive
  @param keepAliveUnits the time unit for the keep alive time
  @return this fraction