package com.hyrt.cei.util;
import java.util.concurrent.*;
public class ThreadPoolWrap
{
private ThreadPoolWrap()
{
executor = null;
bq = new ArrayBlockingQueue<Runnable>(50);
executor = new ThreadPoolExecutor(DEFAULT_COREPOOLSIZE, DEFAULT_MAXIMUM_POOLSIZE, DEFAULT_KEEP_ALIVE_TIME, TimeUnit.SECONDS, bq);
}
public static ThreadPoolWrap getThreadPool()
{
if(instance == null)
instance = new ThreadPoolWrap();
return instance;
}
public void executeTask(Runnable runnable)
{
executor.execute(runnable);
}
public void removeTask(Runnable runnable)
{
executor.remove(runnable);
}
public void shutdown()
{
executor.shutdown();
instance = null;
}
private static final int DEFAULT_COREPOOLSIZE = 2;
private static final long DEFAULT_KEEP_ALIVE_TIME = 30L;
private static final int DEFAULT_MAXIMUM_POOLSIZE = 2;
private static ThreadPoolWrap instance;
private BlockingQueue<Runnable> bq;
private ThreadPoolExecutor executor;
}