实际上就是继承ThreadPoolExecutor类,然后重写beforeExecute和afterExecute方法
public class ThreadPoolBefore extends ThreadPoolExecutor {
public ThreadPoolBefore(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue) {
super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue);
}
//重写父类方法
@Override
protected void beforeExecute(Thread t, Runnable r) {
super.beforeExecute(t, r);
System.out.println("---线程执行前---");
}
//重写父类方法
@Override
protected void afterExecute(Runnable r, Throwable t) {
super.afterExecute(r,t);
System.out.println("---线程执行完了---");
}
}