public interface ExecutorService extends Executor {
//不再接受新任务,待所有任务执行完毕后关闭ExecutorService
void shutdown();
//不再接受新任务,直接关闭ExecutorService,返回没有执行的任务列表
List<Runnable> shutdownNow();
//判断ExecutorService是否关闭
boolean isShutdown();
//判断ExecutorService是否终止
boolean isTerminated();
//等待ExecutorService到达终止状态
boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException;
<T> Future<T> submit(Callable<T> task);
//当task执行成功的时候future.get()返回result
<T> Future<T> submit(Runnable task, T result);
//当task执行成功的时候future.get()返回null
Future<?> submit(Runnable task);
//批量提交任务并获得他们的future,Task列表与Future列表一一对应
<T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks)
throws InterruptedException;
//批量提交任务并获得他们的future,并限定处理所有任务的时间
<T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks,
long timeout, TimeUnit unit) throws InterruptedException;
//批量提交任务并获得一个已经成功执行的任务的结果
<T> T invokeAny(Collection<? extends Callable<T>> tasks) throws InterruptedException, ExecutionException;
<T> T invokeAny(Collection<? extends Callable<T>> tasks,
long timeout, TimeUnit unit)
throws InterruptedException, ExecutionException, TimeoutException;
}