线程池:实现一个pool,预先一个list有若干个thread;做getThread,与repoolThread;实现一个Thread类,接受Runnable,平时wait(this),一旦enable时,notify(this);调用时实现一个Runnable的对象,传给pool,由Thread类接收run。
Executor框架:
位于java.util.concurrent并发包中,是一个线程池工厂,分别有工厂方法:
newFixedThreadPool(n) :返回一个固定数量的线程池,若有空闲,task就跑,否则进入等待队列;
newCachedThreadPool:返回一个可以根据实际情况调整大小的线程池;
newSingleThreadExecutor:返回只有一个线程的线程池,多个task进入队列,在空闲时根据先入先出的顺序取得线程。
newSingleThreadScheduledExecutor,newScheduledThreadPool扩展了定时,周期性功能。
这些线程池均是对ThreadPoolExecutor的一个封装,在默认的ThreadPoolExecutor中,提供了beforeExecutor与afterExecutor,可以做现在的开始于收尾的事。