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);
    }
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 ) ; }
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