五.线程池
线程池是为了提高由于频繁创建线程而大大降低的系统效率,如果并发的线程很多,并且每个线程都执行了一个时间很短的任务就结束了,因为频繁创建线程和销毁线程需要时间,线程池使线程可以复用,就是执行完一个任务不被销毁,继续执行其他的任务。
①.继承实现
从最核心的ThreadPoolExecutor类开始,ThreadPoolExecutor继承于AbstractExecutorService抽象类,
AbstractExecutorService抽象类实现了ExecutorService接口,ExecutorService实现了Executor接口,
Executor中定义了关键方法:
void execute(Runnable command);
ExecutorService接口中新定义了很多方法:
void shutdown();
List<Runnable> shutdownNow();
boolean isShutdown();
<T> Future<T> submit(Callable<T> task);
<T> Future<T> submit(Runnable task, T result);
Future<?> submit(Runnable task);
AbstractExecutorService抽象类中实现了ExecutorService接口中的submit的不同参数的三个方法