private static ThreadPoolExecutor buildNonBlockableExecutor() {
final BlockingQueue<Runnable> workQueue = new LinkedBlockingQueue<Runnable>();
final ThreadPoolExecutor tpe = new ThreadPoolExecutor(POOL_SIZE, POOL_SIZE, 15L, TimeUnit.SECONDS, workQueue,
THREAD_FACTORY);
tpe.allowCoreThreadTimeOut(true);
tpe.prestartCoreThread();
return tpe;
}
private static ThreadPoolExecutor buildBlockableExecutor() {
return new ThreadPoolExecutor(0, Integer.MAX_VALUE, 15L, TimeUnit.SECONDS, new SynchronousQueue<Runnable>(),