private CountingThreadPoolExecutor createExecutor(int numThreads){
  return new CountingThreadPoolExecutor(maxThreadNum == -1 ? numThreads : Math.min(maxThreadNum,numThreads),Integer.MAX_VALUE,30,TimeUnit.SECONDS,new LinkedBlockingQueue<Runnable>());
}

private CountingThreadPoolExecutor createExecutor ( int numThreads ) { return new CountingThreadPoolExecutor ( maxThreadNum == - 1 ? numThreads : Math . min ( maxThreadNum , numThreads ) , Integer . MAX_VALUE , 30 , TimeUnit . SECONDS , new LinkedBlockingQueue < Runnable > ( ) ) ; }
creates a new executor object for spawning worker threads
