interface java.util.concurrent.Executor接口
Executor接口只有一个方法
void execute(Runnable command); 传入参数为一个实现了Runnable接口的类
interface java.util.concurrent.ExecutorService extends Executor
ExecutorService接口继承自Executor接口,除execute方法外,还有其他方法
1. awaitTermination方法,阻塞直到全部线程执行完任务,或者超时
boolean awaitTermination(long timeout, TimeUnit unit)
throws InterruptedException;
2. invokeAll执行给定的任务,当所有任务均完成后,返回一个保存有Future状态和期望结果的list。
完成任务可能正常结束或者抛出异常,但执行期间若给定的集合被修改,则该方法的结果不确定
<T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks)
throws InterruptedException;
<T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks,
long timeout, TimeUnit unit)
throws InterruptedException;
3. invokeAny方法,执行给定的任务,如果某个任务已成功完成(也就是未抛出异常),则返回其结果
<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;
4. boolean isShutdown(); 线程池是否关闭
5. boolean isTerminated(); 如果关闭后所有任务均正常完成,则返回true
6. void shutdown(); //关闭线程池,不接受新任务,等待所有执行任务完成
List<Runnable> shutdownNow(); //立刻关闭,返回等待执行的任务列表
7. Future<?> submit(Runnable task); 提交一个 Runnable 任务用于执行,并返回一个表示该任务的Future
<T> Future<T> submit(Runnable task, T result); 提交一个Runnable任
务用于执行,并返回一个表示该任务的Future,result表示要返回的结果
<T> Future<T> submit(Callable<T> task); 提交一个返回值的任务用于执行,返回一
个表示任务的未决结果的 Future。