001package com.thed.zblast.util;
002
003import java.util.concurrent.BlockingQueue;
004import java.util.concurrent.ThreadPoolExecutor;
005import java.util.concurrent.TimeUnit;
006
007public class ThreadPool extends ThreadPoolExecutor {
008 
009    public ThreadPool(int corePoolSize, int maximumPoolSize,
010            long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue) {
011        super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue);
012    }
013 
014    @Override
015    protected void beforeExecute(Thread t, Runnable r) {
016        super.beforeExecute(t, r);
017        System.out.println("Perform beforeExecute() logic");
018    }
019 
020    @Override
021    protected void afterExecute(Runnable r, Throwable t) {
022        super.afterExecute(r, t);
023        if (t != null) {
024            System.out.println("Perform exception handler logic");
025        }
026        System.out.println("Perform afterExecute() logic");
027    }
028 
029}