public static void initPool(String poolName, int corePoolSize,
int maximumPoolSize, int keepAliveTime, TimeUnit timeUnit) {
ThreadPoolExecutor threadPoolExecutor = (ThreadPoolExecutor) poolMap.get(poolName);
if(threadPoolExecutor!=null) {
logger.log(Level.FINE, "{0} will be shutdown and re-created", poolName);
threadPoolExecutor.shutdown();
}
threadPoolExecutor = new ThreadPoolExecutor(corePoolSize,
maximumPoolSize, keepAliveTime, timeUnit,
new LinkedBlockingQueue<Runnable>());
NamedThreadFactory threadFactory = new NamedThreadFactory("Thread_Pool_"+poolName);