public PoolDispatcher(int poolSize, long keepAliveTime, TimeUnit unit,
RejectedExecutionHandler rejectedExecutionHandler, String prefix) {
this.threadPool = new ThreadPoolExecutor(poolSize,
(int) (MAX_POOL_SIZE_FACTOR * poolSize), keepAliveTime, unit,
new ArrayBlockingQueue<Runnable>(poolSize
* POOL_QUEUE_SIZE_FACTOR), new WorkerThreadFactory(
prefix));
this.threadPool.setRejectedExecutionHandler(rejectedExecutionHandler);
}