public class ConcurrentTaskExecutor implements Executor
{
private ThreadPoolExecutor executor = null;
private int corePoolSize = 5;
private int maxPoolSize = 10;
private int keepAliveTime = 0;
private int cacheQueueCapacity =1;
private RejectedExecutionHandler handler = new ThreadPoolExecutor.CallerRunsPolicy();
public void execute(Runnable command)
{
executor.execute(command);
}
/**
* 初始化线程池
*
*/
public void init()
{
if (null == executor)
{
try
{
executor = new ThreadPoolExecutor(corePoolSize, maxPoolSize,
keepAliveTime, TimeUnit.MILLISECONDS,
new ArrayBlockingQueue<Runnable>(cacheQueueCapacity),
handler);
}
catch (Exception e)
{
if (null != executor)
{
executor.shutdown();
}
}
}
}
public void dispose()
{
executor.shutdown();
}
}